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

厦门外贸建站学做网站零基础

厦门外贸建站,学做网站零基础,网站建设网页设计做网站,wordpress登录网站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.yayakq.cn/news/510333/

相关文章:

  • 做网站的关键词怎么判断好不好邯郸个人做网站
  • 做网站需要多少钱一年视频网站建设公司
  • 建设网站的申请整站seo排名外包
  • 佛山做外贸网站代理商网站模板如何使用
  • 外网网站建设网站怎么做筛选
  • 给网站怎么做tag标签怎样做网络销售平台
  • 门户和网站的区别企业网站建设公司选择分析
  • 江苏亿之盛建设有限公司网站上海礼品定制网站
  • 360免费建站域名免费吗建网站签合同
  • 网站建设备案需要什么我市建设车辆违章查询网站 病句
  • 关于对网站建设工作情况的通报工业品网络营销
  • ps做网站页面先后顺序兰州市建设工程安全质量监督站网站
  • 网站图片自动下载大前端Wordpress图片主题
  • 个人虚拟机做网站建设网站建设哪里好
  • 网站的备案可以管几年定制网络监控方案
  • 清新区城乡建设局网站我想接加工单
  • 郑州免费网站建设哪家好深圳市宝安区松岗街道邮政编码
  • 网站代码查询seo网络推广是干嘛的
  • 软件大全链接网站东平专业的网站制作
  • 软装设计案例网站电子商务范围
  • wordpress怎么播放视频播放器优化设计答案五年级下册
  • 电子商务网站建设与维护中职教材电商商城网站建设
  • 上栗县建设局网站8免费网站建站
  • 为什么做网站结构优化徐州专业建站公司
  • asp网站开门男生都知道的微信公众号
  • 网站采集信息怎么做汕头seo网站管理
  • 工信部如何查网站备案郑州网站建设最低价
  • 建立网站第一步怎么做苏州做网站公
  • 个人网站做排名wordpress媒体ip地址
  • 做阿里巴巴网站需要哪些资料58网站建设58xiamen