compare()和compareTo()区别
compareTo
a.compareTo(b)
:将此对象与指定的对象进行比较以进行排序。
Comparable接口:比较值并返回一个int,它告诉值是否比较小于,等于或大于。
如果您的类对象具有自然顺序,请实现该Comparable<T>
接口并定义此方法。所有具有自然排序实现的Java类Comparable<T>
- 示例:String
,包装类,BigInteger
compare
compare(a, b)
:比较其两个参数的顺序。
比较器接口: 比较两个对象的值。这被实现为的一部分Comparator<T>
界面,并且典型的使用是定义实现此的一个或多个小工具类,传递给方法,例如sort()
或使用通过排序数据结构,例如TreeMap
和TreeSet
。您可能希望为以下内容创建Comparator对象:
两个标红的字段说明一个对象排序,一个是对传的参数进行排序。
compareTo和equal
在Java中我们常使用Comparable接口来实现排序,其中compareTo是实现该接口方法。我们知道compareTo返回0表示两个对象相等,返回正数表示大于,返回负数表示小于。同时我们也知道equals也可以判断两个对象是否相等。
下面的例子用age比较排序,用name比较是否相等
public class Student implements Comparable<Student> {private String id;private String name;private int age;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Student(String id, String name, int age){this.id = id;this.name = name;this.age = age;}@Overridepublic boolean equals(Object obj){if(obj == null){return false;}if(this == obj){return true;}if(obj.getClass() != this.getClass()){return false;}Student student = (Student)obj;if(!student.getName().equals(getName())){return false;}return true;}@Overridepublic int compareTo(Student student) {//升序return this.age - student.age;//降序//return student.age - this.age;}
}
客户端主程序
public static void main(String[] args){List<Student> list = new ArrayList<>();list.add(new Student("1", "chenssy1", 24));list.add(new Student("2", "chenssy1", 26));Collections.sort(list); //排序}
compare
事例演示
public class Teacher {private int age;public Teacher(int age) {this.age = age;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
比较器
public class TeacherComparator implements Comparator<Teacher> {@Overridepublic int compare(Teacher o1, Teacher o2) {//升序return o1.getAge() - o2.getAge();//降序//return o2.getAge() - o1.getAge();}
}
客户端主程序
public static void main(String[] args){List<Teacher> list = new ArrayList<>();list.add(new Teacher(18));list.add(new Teacher(30));list.add(new Teacher(22));list.add(new Teacher(43));list.add(new Teacher(21));Collections.sort(list, new TeacherComparator());System.out.println(list);}
compare()和compareTo()区别相关推荐
- java的compare to(),java – compare()和compareTo()之间有什么区别?
从 JavaNotes: > a.compareTo(b): 可比较的接口:比较值并返回一个int,它告诉这些值是否小于,等于或大于. 如果你的类对象有一个自然的顺序,实现Comparable& ...
- compare和compareTo使用区别
一.compare实现了Comparator接口,compareTo实现了compareable接口.它们可以给对象和基本类型进行排序.给基本类型排序可以直接调用Arrays.sort()和Conll ...
- compare和compareTo方法的区别
compare 方法: 通过实现java.util.comparator接口的实现类的重载,重载的方法里面写入比较条件特定字段的差值(比较条件)并返回,然后在创建一个实现comparator接口的实现 ...
- Comparator、compare、compareTo
Comparator :是一个接口,有compare(a,b)方法,主要用来排序. compare(a,b) 方法:根据第一个参数小于.等于或大于第二个参数分别返回负整数.零或正整数. compare ...
- java BigDecimal equals和compareTo区别
为什么80%的码农都做不了架构师?>>> 对于BigDecimal的大小比较,用equals方法的话会不仅会比较值的大小,还会比较两个对象的精确度,而compareTo方法则不 ...
- java中compare语句的用法,compare的用法_java中 compareTo()的程序代码及用法
compare的用法与区别? 一.用法 v. (动词) 1.compare的基本意思是"比较,对照",主要用于比较事物的典型特征及其价值,而不在于比较相同与不同. 2.compar ...
- compareto方法_compare方法和compareTo方法区别
字符串数组sort方法是默认按照字典顺序排序 对象数组 按照对象的某字段排序可以用compare和compareTo两种方法 对对象数组排序: 1.compare 方法得用一个单独继承java.uti ...
- Comparator类中的compare(T o1,T o2)和compareTo()的使用与疑惑解答
这几天做项目刚好遇到需要排序的需求,大概就是你查询一个list,然后list中保存的是map数据,你需要根据map中的若干个数据排序,比如说 List<Map<String, Object ...
- Java中的list、set、map区别
List 有序,可重复 ArrayList 优点: 底层数据结构是数组,查询快,增删慢. 缺点: 线程不安全,效率高 Vector 优点: 底层数据结构是数组,查询快,增删慢. 缺点: 线程安全,效率 ...
最新文章
- Android中如何使用ViewPager实现类似laucher左右拖动效果
- 【风控建模】在python中使用评分卡技术
- 团队任务4-每日例会(2018-12-6)
- 第二节: 比较EF的Lambda查询和Linq查询写法的区别
- 计算机设备故障类型有哪些,计算机硬件故障有哪些
- Unix——学习《Unix环境高级编程》找不到“apue.h”方法
- Linux 中显示所有正在运行的进程
- OpenStack版本比较之Keystone
- 小米集团国际总部落地深圳;国美电器创始人黄光裕出狱;TiKV 4.0 发布 | 极客头条...
- 程序员该如何向奶奶解释 SQL 和 NoSQL?
- 一线架构师实践指南阅读体会_ADMEMS方法体系理解
- BATJTMD,大厂招聘,都怎么面Java程序员?
- webotAI网页版上线啦!
- 千万别小瞧九宫格 一道题就能让候选人原形毕露!
- 事业单位计算机类专技岗职称,事业单位改革,专技岗和管理岗哪个好?
- 现代社会科学的优选法:谈取向运作法
- 新松机器人socket_谈谈本人对新松的印象,给后辈们一点启示
- 董明珠回应“对赌”:格力与小米没有可比性
- nginx安全下载模块ngx_http_secure_link_module
- ORB-SLAM: a Versatile and Accurate Monocular SLAM System