`

Collections.sort的两种用法

    博客分类:
  • java
 
阅读更多
   
/** 
    * @author guwh 
    * @version 创建时间:2011-11-3 上午10:49:36 
    * 类说明 
    */   
    package com.jabberchina.test;  
      
    import java.util.ArrayList;  
    import java.util.Collections;  
    import java.util.Comparator;  
    import java.util.List;  
      
    public class SortTest {  
          
          
          
        public static void main(String[] args) {  
            List<String> lists = new ArrayList<String>();  
            List<A> list = new ArrayList<A>();  
            List<B> listB = new ArrayList<B>();  
            lists.add("5");  
            lists.add("2");  
            lists.add("9");  
            //lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序  
            Collections.sort(lists);  
              
            A aa = new A();  
            aa.setName("aa");  
            aa.setOrder(1);  
            A bb = new A();  
            bb.setName("bb");  
            bb.setOrder(2);  
            list.add(bb);  
            list.add(aa);  
            //list中的对象A实现Comparable接口  
            Collections.sort(list);  
              
            B ab = new B();  
            ab.setName("ab");  
            ab.setOrder("1");  
            B ba = new B();  
            ba.setName("ba");  
            ba.setOrder("2");  
            listB.add(ba);  
            listB.add(ab);  
            //根据Collections.sort重载方法来实现  
            Collections.sort(listB,new Comparator<B>(){  
                @Override  
                public int compare(B b1, B b2) {  
                    return b1.getOrder().compareTo(b2.getOrder());  
                }  
                  
            });  
              
            System.out.println(lists);  
            System.out.println(list);  
            System.out.println(listB);  
              
        }  
      
    }  
      
    class A implements Comparable<A>{  
        private String name;  
        private Integer order;  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }  
          
        public Integer getOrder() {  
            return order;  
        }  
        public void setOrder(Integer order) {  
            this.order = order;  
        }  
        @Override  
        public String toString() {  
            return "name is "+name+" order is "+order;  
        }  
        @Override  
        public int compareTo(A a) {  
            return this.order.compareTo(a.getOrder());  
        }  
          
    }  
      
    class B{  
        private String name;  
        private String order;  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }  
        public String getOrder() {  
            return order;  
        }  
        public void setOrder(String order) {  
            this.order = order;  
        }  
        @Override  
        public String toString() {  
            return "name is "+name+" order is "+order;  
        }  
    }  
      
    打印的结果为:  
     [2, 5, 9]  
    [name is aa order is 1, name is bb order is 2]  
    [name is ab order is 1, name is ba order is 2]  
分享到:
评论

相关推荐

    java List 排序 Collections.sort

    在`Collections.sort()`内部,使用了一种称为“快速排序”的高效排序算法。快速排序是一种分治策略,通过选择一个基准值,将数组分为两部分,左边的元素都小于基准,右边的元素都大于基准,然后再对左右两部分递归地...

    详解java Collections.sort的两种用法

    Java Collections.sort 的两种用法详解 ...Java Collections.sort 方法提供了两种用法,分别是对基本类型和自定义类的排序。通过实现 Comparator 接口的 compare 方法,我们可以完成自定义排序规则。

    Java Arrays.sort和Collections.sort排序实现原理解析

    Java中的`Arrays.sort()`和`Collections.sort()`是两个常用的排序函数,它们分别用于对数组和集合进行排序。这两个函数在内部实现上有所不同,但都基于高效的排序算法。 首先,`Collections.sort()`方法在处理列表...

    详解Java中Collections.sort排序

    `Collections.sort()`有两种主要的排序方式:一种是基于元素的自然顺序,另一种是通过自定义比较器`Comparator`。 首先,我们来详细讲解`Collections.sort()`的默认排序机制。当传入的列表元素实现了`Comparable`...

    用Java集合中的Collections.sort方法如何对list排序(两种方法)

    本文将深入探讨两种使用Collections.sort方法对List排序的方法。 首先,第一种方法是让List中的对象实现Comparable接口。Comparable接口定义了一个自然排序的规则,使得实现了该接口的类的对象可以进行比较并排序。...

    listview按序排列显示

    在这个场景下,我们使用`Collections.sort()`函数对一个包含Map对象的List进行排序,然后将排序后的数据适配到ListView中。以下是关于这个主题的详细解释。 **一、Map与List的关系** 在Java中,Map是一种键值对的...

    JAVA中Collections工具类sort()排序方法

    本文将详细介绍`Collections.sort()`方法的两种使用方式及其示例。 ### 一、Collections.sort()方法的两种形式 #### 1. 基于Comparable接口的排序 格式: ```java public static ...

    java 使用Collections类对List的排序操作

    1. **自然排序**:如果 `List` 中的元素是实现了 `Comparable` 接口的对象,那么可以使用 `Collections.sort()` 方法进行自然排序。`Comparable` 接口定义了一个 `compareTo()` 方法,该方法用于比较对象之间的大小...

    EE21 Feature Collections.docx

    - **合并特征集合**:使用 `featureCollection.union` 或 `featureCollection.merge` 来合并两个或多个 Feature Collections。 - **Join 操作**:使用 `Join.apply` 将两个 Feature Collections 进行连接。 - **重置...

    Java Generics and Collections.chm

    《Java Generics and Collections》是Java开发者必备的参考资料,它深入探讨了Java编程中的泛型(Generics)和集合(Collections)这两个核心概念。在Java编程中,泛型和集合框架是提高代码效率、可读性和类型安全性...

    77丨开源实战一(下):通过剖析JavaJDK源码学习灵活应用设计模式1

    然而,Collections.sort()的实现并非严格意义上的模板模式,因为它使用了回调机制,即Comparator接口,而不是继承一个基类并重写模板方法。这种实现方式更接近于策略模式,因为Comparator可以看作是排序策略的封装,...

    Java SE编程入门教程 collection与collections(共7页).pptx

    在示例代码中,我们看到如何使用Collections.sort()方法对一个包含Double对象的ArrayList进行排序。这里的关键在于,如果元素实现了Comparable接口(如User类),那么sort()方法可以直接比较并排序这些元素。...

    关于 Java Collections API 您不知道的 5 件事,第 2 部分

    Java Collections API 是Java编程语言中不可或缺的一部分,它提供了丰富的接口和类来操作各种集合,如List、Set、...例如,代码可能包含了如何使用这些方法和特性的实例,进一步加深我们对Java Collections API的理解。

    单词按首字母排序的两种方法

    本文将详细介绍如何使用Java对字符串数组按照单词的首字母进行排序的两种方法,并通过代码示例加以说明,帮助读者深入理解并掌握这些技巧。 ### 方法一:使用`Arrays.sort()`方法 在Java中,`java.util.Arrays`类...

    java类排序,很实用

    `Collections.sort()` 方法也有两种使用方式: 1. **直接调用 `Collections.sort(List&lt;T&gt; list)`**:当你列表中的元素实现 `Comparable&lt;T&gt;` 接口时,可以直接调用这个方法。例如,对于一个 `ArrayList&lt;Student&gt;`,...

    java集合排序方法总结共13页.pdf.zip

    在Java中,集合主要分为两种类型:List和Set。List接口(如ArrayList和LinkedList)保持元素的顺序,并允许重复元素;Set接口(如HashSet和TreeSet)不允许重复元素,不保证元素的顺序。对于List接口,我们经常需要...

    java 对象 排序

    理解这两个接口的用法,并熟练掌握`Collections.sort()`和`Arrays.sort()`的使用,是成为熟练Java开发者的必备技能。在实际编程中,灵活运用这些知识可以解决各种排序需求,提高代码的可读性和可维护性。

    java冒泡排序java冒泡排序集锦方法!

    `Collections.sort()` 是 Java 中一种快速且高效地对集合(如 ArrayList)进行排序的方法。可以自定义比较器来指定排序规则。 **示例代码分析**: ```java public class Main { public static void main(String[] ...

    java sort面试题目

    自定义排序可以通过两种方式实现: - 实现`Comparable`接口:这种方式要求被排序的类自身实现比较逻辑。 - 提供`Comparator`对象:这种方式更为灵活,可以在不修改类自身的情况下提供不同的排序规则。 #### 五、...

    Android sort按时间排序

    本篇将详细讲解如何使用`ListView`显示按时间排序的数据,并通过`Adapter`和`Collections.sort`方法处理Map中的数据。 首先,我们要理解`ListView`的工作原理。`ListView`是一个可以滚动的视图,它通过复用已创建的...

Global site tag (gtag.js) - Google Analytics