当前位置: 首页 > news >正文

四川省建设厅职称查询网站上海app研发

四川省建设厅职称查询网站,上海app研发,网站建站去哪找客户,上海高端品牌网站建设专家Comparator VS Comparable1. Comparator1.1 对一维数组进行排序1.2 对二维数组进行排序1.3 对对象数组进行排序2. Comparable3. 二者区别1. Comparator 通过源码发现Comparator是一个接口。 根据compare方法中的注释可以发现方法返回三种类型的值,正数、零、负数&a…

Comparator VS Comparable

  • 1. Comparator
    • 1.1 对一维数组进行排序
    • 1.2 对二维数组进行排序
    • 1.3 对对象数组进行排序
  • 2. Comparable
  • 3. 二者区别

1. Comparator

通过源码发现Comparator是一个接口。

在这里插入图片描述

根据compare方法中的注释可以发现方法返回三种类型的值,正数、零、负数,分别对应 小于,等于,大于。

1:前面的数 > 后面的数,是降序(从大到小)的,如果想要改为升序排列,就需要返回 1;
-1:前面的数 < 后面的数,是升序(从小到大)的,不改变位置就返回 -1;
0:二者相等,不进行交换,也就不排序。但是要根据题目来判断返回什么。如果数组是无序的,不能直接返回0。
若保证升序排列,要返回o1 - o2,降序则 o2 - o1。( o1值的是集合中的第一个对象,o2是第二个对象)
return 0:不交换位置,不排序
return 1:交换位置
return -1:不交换位置

下面将对Comparator接口的用法进行讲解:

  1. 对一维数组进行排序。
  2. 对二维数组进行排序。
  3. 对对象数组进行排序。

1.1 对一维数组进行排序

使用Arrays类中的sort方法直接对ages进行排序,默认排序方式为升序。

在这里插入图片描述

使用匿名内部类对数据这里要求数组不能为基本类型的素组,可以转化为基本数据类型对应的包装类进行降序排列:

    return o1 - o2; -- 升序排列return o2 - o1; -- 降序排列

在这里插入图片描述

1.2 对二维数组进行排序

使用Arrays类中的sort方法,如下所示:

在这里插入图片描述

在这里插入图片描述

1.3 对对象数组进行排序

创建Student学生实体类:

public class Student {private int age;private String name;private double height;// setXXX/getXXX,构造方法,toString方法
}

直接对Strudent数据进行排序:可以发现对实体类数组直接进行排序会报错。

在这里插入图片描述

结合ComparatorStrudent数组按照年龄从低到高进行排序:

在这里插入图片描述

结合ComparatorStrudent数组按照身高从高到底进行排序:

在这里插入图片描述

2. Comparable

使用场景:假如说我们有这样一个需求,需要设计一个Student类,有两个属性:姓名(name)、年龄(age)和身高(height),按照年龄的大小进行排序,那么就可以使用Comparable进行实现,注意区别Comparator

  1. 首先创建Student类并实现Comparable<T>接口, 按照年龄升序排列Comparator<T>,其中泛型T为比较器可以比较的对象的类型,在这里面为Person

在这里插入图片描述

  1. 首先创建Student类并实现Comparable<T>接口, 按照年龄降序排列

在这里插入图片描述

  1. 首先创建Student类并实现Comparable<T>接口, 按照身高升序排列

在这里插入图片描述

  1. 首先创建Student类并实现Comparable<T>接口, 按照身高降序排列

在这里插入图片描述

3. 二者区别

Comparable 和 Comparator 的区别

  1. java.lang.Comparable:在类定义的时候,可以实现好的接口,里面有compareTo这个方法需要实现。
  2. java.util.Comparator:是挽救的比较接口(假如我们需要对别人给Person类进行排序,但是Person类里面没有Comparable接口,如果在不允许改变源代码的情况下,我们就可以使用Comparator接口),需要单独定义一个比较类,里面有compare比较方法。
http://www.15wanjia.com/news/196247.html

相关文章:

  • 悦然外贸建站哪里建设网站不需要备案
  • 做网站用的什么编程语言网站建设的基本流程和步骤
  • 网站建设有哪些软件空滤网站怎么做
  • 南昌建网站中国制造网网址
  • 太原网站建设招聘设计素材网站哪个最好推荐
  • 百度站长工具seo查询海南小程序开发公司
  • 企业网站asp模板厦门最快seo
  • 如何评价网站是否做的好处企业网站营销的优缺点及案例
  • 索莱宝做网站网站制作设计培训多少钱
  • 力软框架做网站小程序商店开发
  • 免费做网站的问题企业人力资源管理师
  • 手机网站seo自己做的网站只能用谷歌浏览器打开
  • 免建网站重庆装修公司哪家好十大排名
  • 做360全景的网站wordpress php7.3
  • 长沙做网站设计公司高端网站建设案例
  • 介绍网站建设北京市丰台区建设部官方网站
  • 苏州高端网站制作官网小型企业网站如何建设
  • 韩国电信 网站婚庆摄影网站模板
  • 园区网站建设方案空白网站怎么建
  • 网站集约化建设的总体情况新手wordpress
  • 网站ftp用户名和密码是什么北京做网站的
  • 缅甸做网站服务器怎么租用
  • 设计营销型网站网络优化seo
  • 自己做网站需要什么软件下载网上有做衣服的网站
  • 做交网站网络推广代运营公司
  • 进口跨境电商网站制作wordpress评论模板
  • 网站首页的功能用discuz做门户网站
  • 不良网站举报中心官网建英语网站
  • 网站怎么做双语种创一个app需要多少钱
  • 网站推广优化怎么做最好电影网站app怎么做的