`
阅读更多
要实现排序功能,一般有两种途径,这里对基本类型不适用,基本类型一般有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编程语言中,对包含中文、数字和字母的数据进行排序是一项常见的任务。这个场景下,我们关注的是如何实现一个自定义的排序规则,按照数字、字母和汉字的顺序进行排列。以下是对这一主题的详细解释。 首先,...

    Java 中文排序 使用pinyin4j组件

    在Java编程语言中,对中文字符串进行排序是一个相对复杂的问题,因为中文字符的排序不能简单地按照Unicode编码顺序来处理。通常,我们需要考虑汉字的拼音或者笔画等属性来进行排序。这里我们将详细介绍如何使用`...

    JAVA中排序的方法.doc

    JAVA中排序的方法

    java 中文姓氏 排序

    本文将详细介绍如何在 Java 中对包含中文姓氏的对象列表或字符串列表进行排序。 #### 二、基本概念 1. **Collator 类**:这是 Java 中用于文本排序和检索的标准类。`Collator` 类提供了与语言环境相关的字符串排序...

    JAVA经典排序汇总

    【正文】 ...总的来说,本文涵盖了Java中主要的排序算法,通过实例代码和性能分析,有助于读者系统地学习和掌握排序算法。无论是初学者还是经验丰富的开发者,都能从中受益,提升自己的编程能力。

    java中排序,求最小值、最大值和杨辉三角的题解

    在Java编程语言中,排序、查找最小值和最大值以及杨辉三角是基础且重要的概念。下面我们将逐一探讨这些知识点。 1. **排序算法** - **冒泡排序(Bubble Sort)**:这是一种简单的排序算法,通过重复遍历数组,比较...

    Java 实现ip 地址排序

    Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序

    关于中文英文混合排序javaDemo

    在Java编程语言中,处理中文和英文混合的排序问题是一个常见的需求,特别是在处理用户输入、数据库数据或文件名等场景。这个"关于中文英文混合排序javaDemo"的示例主要展示了如何实现这样的功能。让我们深入探讨一下...

    java数组排序

    在Java编程语言中,数组排序是一项基础且重要的任务。它涉及到不同的算法,这些算法通过比较和交换元素来达到数组元素的有序状态。本篇将详细探讨几种常见的排序算法及其在Java中的实现。 首先,让我们从最简单的...

    java数组自定义排序

    java中数组的自定义排序,种类繁多,简单实现,可自由操控。

    java基础冒泡排序.ppt

    Java基础知识: 冒泡排序详解,简单而详细的讲清楚了,什么是冒泡排序。 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如...

    java冒泡排序代码

    java冒泡排序代码,亲测能用,控制台输入数据,自动排序

    java List 排序 Collections.sort

    总结起来,`Collections.sort()`是Java中对List进行排序的标准工具,它支持自然排序和自定义排序。了解其工作原理和优化技巧,可以帮助我们在编程实践中更高效地处理数据。通过阅读和理解`Collections.sort()`的源码...

    java 集合分组与排序

    下面我们将深入探讨如何在Java中实现集合的分组与排序。 1. **集合分组**: 集合分组通常涉及到`GroupingBy`操作,这在Java 8引入的流(Stream)API中得到了很好的支持。`Collectors.groupingBy`方法允许我们将...

    java中排序报:Comparison method violates its general contract异常的解决

    在Java编程中,当执行排序操作时,可能会遇到一个特定的异常:“Comparison method violates its general contract”。这个异常通常发生在使用`Arrays.sort()`或`Collections.sort()`方法时,尤其是在从Java 6升级到...

    JAVA 8种排序介绍及实现

    本文将介绍两种常见的排序算法:直接插入排序和希尔排序,并通过Java代码实现来帮助理解。 1. 直接插入排序(直接插入排序) 直接插入排序是一种简单的排序方法,它的工作原理类似于我们平时手动整理扑克牌。在排序...

    数据结构之JAVA排序JAVASORT.pdf

    本文件“数据结构之JAVA排序JAVASORT.pdf”很可能是对Java中排序算法的一个深入探讨。下面我们将详细讲解Java中的排序算法及其重要性。 首先,我们要理解什么是排序。排序是指将一组数据按照特定的顺序进行排列的...

    java中list排序

    Java 中 List 排序 Java 中 List 排序是指在数据库中查出来的列表中对不同的字段重新排序。一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的 List 中排序,无疑会提高...

Global site tag (gtag.js) - Google Analytics