Java 的Comparable 和 Comparator
来源:互联网 发布:mac装win10 wifi不稳定 编辑:程序博客网 时间:2024/05/16 08:47
定义
顾名思义,Comparator是比较器,用于集合类排序时的参数,不需要在类中添加额外的代码
Comparable,可比较的,为一个比较的接口,类需要实现这个接口。集合类排序时候根据此类的compareTo 方法比较大小。
实现Comparable接口
下面demo为实现Comparable接口的方式,类内部需要实现compareTo 方法
package javaecho;import java.util.Arrays;public class MainClass implements Cloneable{public static void main(String args[]) throws CloneNotSupportedException{User u1 = new User(18,"allen");User u2 = new User(20,"jack");User[] list = {u2,u1};for (User u :list)System.out.println(u.getName());Arrays.sort(list);for (User u :list)System.out.println(u.getName());}}class User implements Comparable<User>{private int age;private String name;public User(int age,String name){this.age= age;this.name =name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic int compareTo(User arg0) {if(this.age>arg0.getAge())return 1;else if (this.age<arg0.getAge())return -1;elsereturn 0;}public boolean equals(Object arg0){return true;}}
使用Comparator比较器
比较器的好处是灵活,无需在类中实现代码。但在集合类排序的时候,或者构造有序类集合时,需要作为参数传人进去。
package javaecho;import java.util.Arrays;import java.util.Comparator;public class MainClass implements Cloneable{public static void main(String args[]) throws CloneNotSupportedException{User u1 = new User(18,"allen");User u2 = new User(20,"jack");User[] list = {u2,u1};for (User u :list)System.out.println(u.getName());Arrays.sort(list, new Comparator<User>(){@Overridepublic int compare(User arg0, User arg1) {return arg0.getAge()> arg1.getAge() ? 1: (arg0.getAge()==arg1.getAge() ? 0: -1);}});for (User u :list)System.out.println(u.getName());}}class User{private int age;private String name;public User(int age,String name){this.age= age;this.name =name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
0 0
- java的Comparator和Comparable
- java的Comparator和Comparable
- java的Comparator和Comparable
- java的Comparator和Comparable
- java的Comparator和Comparable
- Java 的Comparable 和 Comparator
- java Comparable和Comparator
- JAVA Comparator 和 Comparable
- java comparator和comparable
- Java Comparable 和 Comparator
- java中comparable和 comparator的区别
- java的Comparable 和Comparator 接口
- java Comparable 和 Comparator 的 Collections 排序
- java中Comparator 和 Comparable 的区别
- Java的Comparator和Comparable接口
- java基础--Comparable和Comparator的区别
- Java中Comparator和Comparable的区别
- Java的Comparator和Comparable对比
- 分类问题之朴素贝叶斯模型
- Android程序的签名保护及绕过方法
- 使用Idhttp.get('') 造成假死(堵塞),请问线程idhttp怎么才能做到不出错? [
- 内存溢出与内存泄漏
- Android Activity与Service通信
- Java 的Comparable 和 Comparator
- popupWindow布局
- tomcat配置及nginx反代至tomcat(二)
- Linux LTS 内核最新稳定版 4.4.4 版本发布
- 1.ioc容器(spring3.2文档第五章)
- file not found:'DBAccess.dcu'解决
- UILabel的文本调节宽度,以及字体自适应宽度
- 编程小练习2
- 003.&与&&的区别?