1.从功能上看,Comparable接口需要对象本身具备比较的特性;而Comparator则不需要,希望两个对象进行什么样的排序,就实现什么样的Comparator,这在不希望修改已有类的情况下非常有用
2.从设计上看,Comparable接口属于强耦合接口,Comparator数据低耦合接口。使用Comparable接口来进行排序属于继承方式,也就是面向对象中的is-a关系,最好在设计...
分类:
其他好文 时间:
2015-03-09 22:30:55
阅读次数:
226
很多人只会用Collections中不带比较器Comparator的sort方法完成一些对存储整形Integer的动态数组ArrayList的简单排序,包括我之前,此前仅仅在《【Java】Java中的Collections类——Java中升级版的数据结构》(点击打开链接)介绍Collections中sort方法的简单用法。
igz
面对eclipse所给出的说明,根本就不知道这个sort方...
分类:
编程语言 时间:
2015-03-08 10:32:28
阅读次数:
234
Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能;如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的。
compare(a,b)方法:根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。
equals(obj)方法:仅当指定的对象也是一个 Compara...
分类:
编程语言 时间:
2015-03-06 15:55:07
阅读次数:
155
7.合并重复区间
给定一组区间,合并其中重复的。例:
给定[1,3],[0,7],[2,6],[8,10],[15,18],其中[1,3]与[0,7]及[2,6]区间有重复,因此将其合并成一个区间:[0,7]。最终返回:
[0,7],[8,10],[15,18].
书上的解法用到了Comparator,其大致思路如下:
1. 创建一个间隔类Interval,其成员变...
分类:
编程语言 时间:
2015-03-06 11:23:52
阅读次数:
139
Java开发人员应该对java.lang.Runnable,java.util.Comparator,java.util.concurrent.Callable 等等接口不会感到陌生。他们都只有一个单一的抽象方法。这样的接口,我们通常叫单一抽象方法接口(SAM,Single Abstract Method Interface)。在Java 8 中,对于这种拥有单一抽象方法的接口,换了个名字,叫函数接口。所以,这个不是什么新东西,这个名字也是为了Lambada表达式而生。...
分类:
编程语言 时间:
2015-03-05 23:43:46
阅读次数:
295
0x00 level: 0x040x01 code: package org.apache.lucene.demo.big.query;import java.io.IOException;import java.util.Comparator;import org.apache.lucene......
分类:
Web程序 时间:
2015-03-04 18:56:11
阅读次数:
281
首先我们得说明在Collections里面有两个排序方法
public static void sort(List list, Comparator c)
public static > void sort(List list) 很清晰,第二个方法不需要传入比较器,但是传入的待排序的参数list必须实现Comparable接口。
我们目前就只看第二个sort。
Collection...
分类:
其他好文 时间:
2015-03-04 14:44:50
阅读次数:
154
publicinterfaceComparable<T>Thisinterfaceimposesatotalorderingontheobjectsofeachclassthat
implementsit.Thisorderingisreferredtoastheclass‘snatural
ordering,andtheclass‘scompareTomethodisreferredtoasits
naturalcomparisonmethod.Lists(andarrays)ofobjects..
分类:
其他好文 时间:
2015-03-03 18:55:41
阅读次数:
113
普通的类要实现排序,必须实现Comparable接口,并重写CompareTo()方法。packagetest;
publicclassFieldimplementsComparable<Field>{
privateStringname;
privateintage;
publicField(){
}
publicField(Stringname,intage){
this.name=name;
this.age=age;
}
publicStrin..
分类:
编程语言 时间:
2015-03-02 19:24:35
阅读次数:
109
Objects是Java 7新增的一个工具类,它提供了一些工具方法来操作对象,这些工具方法大多是“空指针”安全的。
Objects实现的方法如下:
关于compare(T,T,Comparator)方法在源码中是如何定义的:
public static int compare(T a, T b, Comparator...
分类:
编程语言 时间:
2015-02-25 22:24:41
阅读次数:
188