玩转 Comparator 和 Comparable 两接口】的更多相关文章

最近项目中有排序的需求,就查看了一下Java文档,发现有两个接口都可以进行排序,Comparable 和 Comparator 两接口到底有啥区别?何时用?怎么用?使用场景我都在底下一一研究分享出来: 一.Comparable 比较器 (1)Comparable 是接口,可以认为是一个内比较器,实现了Comparable 接口的类有一个特点,就是这些类可以和自己进行比较,比较逻辑依赖于 comparaTo() 方法.如果借用Collections.sort() 方法来进行排序,那么这个类必须实现…
在Java集合中,如果要比较引用类型泛型的List,我们使用Comparator和Comparable两个接口. Comparable接口 -- 默认比较规则,可比较的 实现该接口表示:这个类的实例可以比较大小,可以进行自然排序 定义了默认的比较规则 其实现类需要实现comparaTo()方法 comparaTo()方法返回整数表示大,负数表示小,0表示相等 Comparator接口 -- 临时比较规则,比较工具接口 用于定义临时比较规则,而不是默认比较规则 其实现类需要实现compara()方…
1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的. 什么是自定义class: 如 public class Person{ String name; int age; } 当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用Collections.sort( personList ), 是得不到预期的结果的. 这时肯定有人要问, 那为什么可以…
TreeMap及常用API ①   TreeMap类通过使用红黑树实现Map接口; ②   TreeMap提供按排序顺序存储键/值对的有效手段,同时允许快速检索; ③   不像散列(HashMap),树映射保证它的元素按关键字升序排序; ④   TreeMap构造方法: a)   TreeMap() b)   TreeMap(Comparator comp) c)   TreeMap(Map m) d)   TreeMap(SortedMap sm) ⑤   TreeMap实现SortedMap…
java.util 接口 Comparator<T>   compare int compare(T o1, T o2) 比较用来排序的两个参数.根据第一个参数小于.等于或大于第二个参数分别返回负整数.零或正整数. equals boolean equals(Object obj) 指示某个其他对象是否"等于"此 Comparator.       java.lang 接口 Comparable<T> compareTo int compareTo(T o) 比…
1.知识点了解 Comparator和Comparable都是用用来实现集合中元素的比较.排序的,所以,经常在集合外定义Comparator接口的方法和集合内实现Comparable接口的方法中实现排序 相同点: 二者的比较方法Comparable的compareTo和compare返回的结果有三种负数.零.正数,分别表示的关系为小于.等于.大于 不同点: Comparator位于java.util包下,属于Collection的一员:Comparable位于java.lang包下 Compar…
转自:http://blog.csdn.net/zhangerqing 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 一.Comparator 强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort. 接口方法: [java] view plaincopy /** * @return o1小于.等于或大于o2,分别…
java的Comparator和Comparable 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序.      一.Comparator 强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort. 接口方法:   /**    * @return o1小于.等于或大于o2,分别返回负整数.零或正整数.    */  …
一.概述.   Comparator和Comparable两者都属于集合框架的一部分,都是用来在对象之间进行比较的,但两者又有些许的不同,我们先通过一个例子来看一下他们的区别,然后再分别学习下它们的源码. 先来看一下Comparable的例子,定义实体类Student,实现Comparable,重写compareTo方法: public class Student implements Comparable<Student> { private String name; private Int…
我们都知道,实现Comparator和Comparable这两个接口,可以实现对对象比较大小.那这个两个又有什么区别呢? comparator 1.接口类在java.util包里面,实现接口时需要导入该包. 2.一般新建一个类实现这个接口,用来比较其他对象的大小.实现这个接口时,对象不能把自己和其他对象相比较. 3.实现public int compare(Object o1, Object o2),当实现类使用了泛型时,Object可以换成具体的类型. import java.util.Com…