要实现排序功能,一般有两种途径,这里对基本类型不适用,基本类型一般有Arrays中的静态方法. 1.对象本身实现Comparable接口,那么该类的实例就是可以排序的. 有关Comparable: http://blog.csdn.net/treeroot/archive/2004/09/09/99613.aspx 只要实现了Comparable接口,就可以调用Collections的sort方法对集合中的元素排序. 2.指定一个Comparator,也就是实现了Comparator的类的一个实例. 但是Java本身只提供了一个Comparator的实现,就是 Collections.reverseOrder(). 该方法返回的是一个已经实现了Comparable接口的反序. 看一下Comparator的全部内容: |
public interface Comparator {
int compare(Object o1, Object o2);
boolean equals(Object obj);
}
定义了两个方法,其实我们一般都只需要实现compare方法就行了,因为类都是默认从Object继承,
所以会使用Object的equals方法. Comparator一般都作为一个匿名类出现,对于没有实现Comparable
的对象的集合,排序的时候需要指定一个Comparator.
这里举例说明
对于实现了Comparable的类我们就用最简单的Integer
List list=new ArrayList();
list.add(new Integer(3));
list.add(new Integer(53));
list.add(new Integer(34));
Collections.sort(list);
对于没有实现Comparable的,我们就用Object,按照hashCode大小来排序.
List list= new ArrayList();
list.add(new Object());
list.add(new Object());
list.add(new Object());
Collections.sort(list,new Comparator(){
public int compare(Object o1, Object o2){
return (o1.hashCode()-o2.hashCode());
}
});
本文转自:http://www.java3z.com/cwbwebhome/article/article2a/23.html?id=86
相关推荐
java实现中文排序,按数字字母汉字的顺序进行排序
Java 中文排序 使用pinyin4j组件
JAVA中排序的方法
java中排序,求最小值、最大值和杨辉三角的题解,希望对初学java的朋友有益
排序算法,JAVA中的快速排序,交换排序,冒泡排序,选择排序等算法的分析
java 中文姓氏 排序
主要给大家介绍了关于java中排序报:Comparison method violates its general contract异常的解决方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
本文主要是将Java中所有的排序方法进行总结,并以实际的代码的形式写出来,以帮助读者更好的理解,从而达到灵活运用的目的。
Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序
java产生多个随机数写入文件中,比较四种排序算法的效率
Java排序算法实现资源 这个资源是关于Java中排序算法实现的简单示例。排序算法是计算机科学中的基础概念,用于按升序或降序排列数据集。这里提供了两种常见的排序算法实现:冒泡排序和选择排序。 冒泡排序(Bubble ...
java中集合排序
java中数组的自定义排序,种类繁多,简单实现,可自由操控。
java 选择排序法 java 选择排序法 java 选择排序法
JAVA排序汇总JAVA排序汇总JAVA排序汇总
Java基础知识: 冒泡排序详解,简单而详细的讲清楚了,什么是冒泡排序。 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如...
java冒泡排序代码,亲测能用,控制台输入数据,自动排序
java数组排序的思想,过程和代码实现。多种数组排序的方法,主要有冒泡排序,堆排序,插入排序, 归并操作(merge), 归并操作(merge),选择排序,希尔排序。
java 冒泡排序方法,java 冒泡排序方法。
Java三种排序 Java三种排序 Java三种排序