当前位置: 首页 > 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/654039/

相关文章:

  • 网站开发创业计划书模板5 还有网站的域
  • 幕墙配件在那个网站做推广好wordpress多语言子域名
  • 网站程序是什么意思购物网站建设案例
  • 营销型网站建设推荐乐云践新传媒公司
  • dede查看网站源码免费流量网站推广
  • 中国外贸出口网站项目外包公司到底值不值得去
  • 无经验可以做网站编辑吗公司网站变更域名
  • 平台网站模板交互网站是什么
  • 试玩网站开发php招投标网站源码
  • 百度网盟有哪些网站手机制作app需要什么软件
  • 站群管理系统外贸做那种网站
  • ps设计师网站有哪些云主机可以做几个网站
  • 荆门网站制作公司深圳松岗 网站建设
  • 公司网站后台管理教程做衣服外贸用什么网站好
  • 福州网站seo凡科建站如何制作论坛
  • 消防器材网站建设背景企业网站开发 文献综述
  • 站外推广网站大连网站设计公司排名
  • 网络营销营销型网站成都官网建设公司
  • 网站建设需要备案企业建立自己的网站
  • ICO网站模板苏州自助建站模板
  • 网站次页网站运营意义
  • 前端直播网站怎么做做一个网站的步骤
  • 电商网站主题自考网站建设与管理资料
  • 网站增加聊天网站建设项目需求概要说明书
  • 大学网站栏目建设东莞市房管局官方网站
  • 高中信息技术课程做网站线上平台建设怎么做
  • ps 矢量素材网站公司做网页去哪找
  • 服装网站建设费用app在线开发制作平台
  • 荆门网站建设服务青岛网站建设有限公司
  • 24手表网站wordpress主页添加meta