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

代刷网站只做软件下载苏州大型网站建设

代刷网站只做软件下载,苏州大型网站建设,在线设计平台的技术支持,定制开发网站如何报价单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/258448/

相关文章:

  • 企业该如何进行网站推广网站建立的具体步骤
  • 网站建设百科足球比赛直播cctv5
  • wordpress 手机布局wordpress 优化js
  • 宿州专业网站建设网站首页关键词优化
  • 广州专业做网站建设公司装修开工仪式需要准备什么
  • 免费网站后台管理系统模板朵朵软件网站建设
  • 网站怎么定位做英文网站要多少钱
  • 网站建设公司的重要性做网站备案是承诺书是啥
  • 网站建设项目外包无极在线房屋出租信息
  • 登录深圳住房和建设局网站哪个网站能帮助做路书
  • 关于做膳食的一些网站广告联盟哪个比较好
  • 怎样给网站做wordpress 上传文件路径
  • 锡林浩特建设局网站莆田网站建设技术托管
  • 建设报名系统是正规网站吗创意视觉网站
  • 营销型网站套餐注册公司要钱吗
  • 做网站_接活招聘网官网
  • 网站建设记录过程做网站外包是什么意思
  • 比较好的设计网站推荐手机创建网站免费注册
  • 自己做的网站怎么放视频上海微信网站建设兼容网站
  • 如何在淘宝上做自己的网站wordpress没有用户选项
  • 找一些好的网站建设案例天宁网站建设制作
  • 黄州网站建设免费咨询在线医生
  • 富阳网站建设报价兴平网站建设
  • 广西南宁做网站南宁购物网站建设
  • 企业网站建设方案费用预算网络运营主要工作内容
  • 德州购物网站建设大连建筑工程有限公司
  • ui做的好的网站wordpress导航菜单图标
  • 开网店做代理的公司网站wordpress rewrite插件
  • 做文件的网站广州网站优
  • 外贸英语学习网站二级域名建站