php购物网站开发开发多久,做网站哪家南京做网站,wordpress google font,深圳市招投标交易中心这篇来介绍自定义类型对象的比较方法#xff0c;利用Comparable 接口和 Comparator 接口。
目录
问题引入#xff1a;
一、Comparable 接口
1.1比较学生的年龄
方法#xff1a;
结果#xff1a;
1.2比较学生的姓名
方法#xff1a;
结果#xff1a;
1.3 案例再…
这篇来介绍自定义类型对象的比较方法利用Comparable 接口和 Comparator 接口。
目录
问题引入
一、Comparable 接口
1.1比较学生的年龄
方法
结果
1.2比较学生的姓名
方法
结果
1.3 案例再展示 Arrays.sort(students)
1.3.1实验 short 排序
1.3.2.异常报告
1.3.3得出结论
1.4 Comparable 接口的缺点
二、比较器 Comparator 接口
2.1比较学生的年龄
2.2 比较学生姓名
2.3 案例再展示 比较器 Arrays.sort(students)
三、对比 Comparable 接口和 Comparator 接口 问题引入
如果我们要比较两个整型的值我们直接输出就好。 但是当我们想比较两个学生创建类去实例化实例化后可以比较对象的引用吗这显然不可以这样直接比没有任何意义 问题就来了 自定义类型怎么比较 规则怎么制定 一、Comparable 接口 Comparable接口是一个泛型要比较什么类型就把类名传入接口用于定义对象的排序规则。该接口中只有一个方法compareTo()用于比较这个对象与另一个对象的大小关系。 compareTo()方法的如下 int compareTo(T obj) 用法 compareTo()方法返回一个整数值表示当前对象与参数对象的大小关系 如果返回值小于0表示当前对象小于参数对象如果返回值等于0表示当前对象等于参数对象如果返回值大于0表示当前对象大于参数对象。 Comparable接口需要实现类重写compareTo()方法根据对象的某个属性或多个属性进行比较从而确定对象的大小关系。 有了上面的介绍我们来实现一下Comparable接口 重写comparto 方法
1.1比较学生的年龄
方法 结果 1.2比较学生的姓名
方法 结果
表明zhangsan大于lisi(只是字符串长度的比较 1.3 案例再展示 Arrays.sort(students) 1.3.1实验 short 排序
利用 Arrays.sort(students)排序直接就排序好了数组真神奇它怎么知道我想按年龄排的其实这个方法背后也离不开Comparable接口 comparto 方法当我们不再实现接口和方法再运行 1.3.2.异常报告
报告了异常类型转换异常我们看看源码 1.3.3得出结论 自定义类型涉及到大小的比较现阶段一定要实现Comparable接口 1.4 Comparable 接口的缺点 我们每次比较不同的属性都要修改comparto 方法这种方法适合固定的属性比较好麻烦有什么办法吗 二、比较器 Comparator 接口 比较器Comparator是Java中一个接口用于定义两个对象之间的比较规则。它通常用于排序算法中使得对象可以按照自定义的规则进行排序。 比较器接口中只有一个方法compare(Object o1, Object o2)该方法用于比较两个对象。返回一个负整数、零或正整数表示o1小于、等于或大于o2。根据返回值的不同可以确定两个对象的相对顺序。 比较器的使用可以实现灵活的排序规则不依赖于对象的自然排序。它可以按照不同的属性、不同的顺序进行排序同时也可以处理特定的比较需求例如忽略大小写比较字符串等。 我们上面使用Comparable接口每次要重新写比较的方法来看看 Comparator 接口怎么改善 2.1比较学生的年龄 2.2 比较学生姓名 2.3 案例再展示 比较器 Arrays.sort(students) 三、对比 Comparable 接口和 Comparator 接口
总的来说Comparable接口是对象自身的比较逻辑Comparator接口是一个独立的比较器可以在不同的排序方式下进行比较。