Java Comparable(lang) Comparator(util)对比
来源:互联网 发布:依云软件破解 编辑:程序博客网 时间:2024/06/04 23:36
java.lang.Comparable是一个对象本身就已经支持自比较所需要实现的接口(如String Integer自己就可以完成比较大小操作)即对象必须实现这个接口。Comparable比较用的方法是Arrays.sort(对象数组)。Comparable而是需要对象实现Comparable<对象>
java.util.Comparator是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比较。Comparator比较用的方法是Collections.sort(list, new Comparator());Comparator需要自己写一个比较类。
compareTo和compare方法返回1则表示需要交换 -1则不需要交换
java.util.Comparator是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比较。Comparator比较用的方法是Collections.sort(list, new Comparator());Comparator需要自己写一个比较类。
compareTo和compare方法返回1则表示需要交换 -1则不需要交换
package test.Compare;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;public class CompareTest {public static void main(String[] args) {List<PersonA> list = new ArrayList<PersonA>();PersonA p1 = new PersonA(23);list.add(p1);PersonA p2 = new PersonA(21);list.add(p2);PersonA p3 = new PersonA(29);list.add(p3);Object pArr[] = list.toArray();Arrays.sort(pArr);for (Object v : pArr) {System.out.println(v);}List<PersonB> list1 = new ArrayList<PersonB>();PersonB p4 = new PersonB(23);list1.add(p4);PersonB p5 = new PersonB(21);list1.add(p5);PersonB p6 = new PersonB(29);list1.add(p6);//从小到大顺序 Collections.sort(list1, new SortPersonBAge()); for (PersonB v : list1) {System.out.println(v);} //从大到小 Collections.reverse(list1); for (PersonB v : list1) {System.out.println(v);}}};// Comparable是java.lang包里面的Arrays.sort(pArr);class PersonA implements Comparable<PersonA> {private int age;public PersonA(int age) {super();this.age = age;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic int compareTo(PersonA o) {if (this.age > o.getAge())return 1;else if (this.age < o.getAge())return -1;return 0;}@Overridepublic String toString() {return this.age + " ";}}class PersonB {private int age;public PersonB(int age) {super();this.age = age;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return this.age + " ";}}//Comparable Comparator是java.util包体里面的class SortPersonBAge implements Comparator<PersonB> {@Overridepublic int compare(PersonB o1, PersonB o2) {if (o1.getAge()>o2.getAge()) {return 1;} else if (o1.getAge()<o2.getAge()) {return -1;}return 0;}};
0 0
- Java Comparable(lang) Comparator(util)对比
- Java.lang.Comparable接口和Java.util.Comparator接口的区别
- Java的Comparator和Comparable对比
- Java.util.comparator、Java.util.comparable接口使用例子
- java.util.Collections.sort(List list)类的应用(与Comparable,Comparator比较)
- java.util.Collections.sort(List list)与Comparable,Comparator 接口
- java.util.Collections.sort(List list)与Comparable,Comparator
- 【Java语言学习】之Comparator 和 Comparable 对比
- java 集合排序(Comparable、Comparator)
- java Comparable和Comparator
- Java之Comparable,Comparator
- java数据结构-Comparable&Comparator
- Java Comparable vs Comparator
- Java Comparable vs Comparator
- java Comparable Comparator
- java Comparator 与Comparable
- JAVA Comparator 和 Comparable
- java comparator和comparable
- 汉字转拼音例子
- 汉字排序问题例子
- TestNG 入门教程
- 从远程客户端应用程序收到一个 SSL 连接请求,但 客户端应用程序支持的密码套件 iis
- 拼接数组
- Java Comparable(lang) Comparator(util)对比
- uCOS-II整理之任务
- Android设计模式(二十三)-桥接模式
- Android开发周报开源库&App搬运[118-127][2017.5.2更新]
- java 基于接口代理(JDK)和基于类的代理(CGLIB)
- js模块
- Dom4j学习-1
- java从数据库读取时间的时候时间参数后多了一个.0
- BeanCopier对象复制学习