`

javaList排序的两种方法

阅读更多
 第一种方法,就是list中对象实现Comparable接口,代码如下:
  01 public class Person implements Comparable<Person> {
  02     private String name;
  03     private Integer order;
  04
  05     /**
  06      * @return the name
  07      */
  08     public String getName() {
  09         return name;
  10     }
  11
  12     /**
  13      * @param name
  14      *            the name to set
  15      */
  16     public void setName(String name) {
  17         this.name = name;
  18     }
  19
  20     /**
  21      * @return the order
  22      */
  23     public Integer getOrder() {
  24         return order;
  25     }
  26
  27     /**
  28      * @param order
  29      *            the order to set
  30      */
  31     public void setOrder(Integer order) {
  32         this.order = order;
  33     }
  34
  35     @Override
  36     public int compareTo(Person arg0) {
  37         return this.getOrder().compareTo(arg0.getOrder());
  38     }
  39
  40 }
  01 public static void main(String[] args) {
  02     List<Person> listA = new ArrayList<Person>();
  03     Person p1 = new Person();
  04     Person p2 = new Person();
  05     Person p3 = new Person();
  06
  07     p1.setName("name1");
  08     p1.setOrder(1);
  09     p2.setName("name2");
  10     p2.setOrder(2);
  11     p3.setName("name3");
  12     p3.setOrder(3);
  13
  14     listA.add(p2);
  15     listA.add(p1);
  16     listA.add(p3);
  17     Collections.sort(listA);
  18     for (Person p : listA) {
  19         System.out.println(p.getName());
  20     }
  21 }
  第二种方法,就是在重载Collections.sort方法,代码如下:
  01 public class Person {
  02     private String name;
  03     private Integer order;
  04
  05     /**
  06      * @return the name
  07      */
  08     public String getName() {
  09         return name;
  10     }
  11
  12     /**
  13      * @param name
  14      *            the name to set
  15      */
  16     public void setName(String name) {
  17         this.name = name;
  18     }
  19
  20     /**
  21      * @return the order
  22      */
  23     public Integer getOrder() {
  24         return order;
  25     }
  26
  27     /**
  28      * @param order
  29      *            the order to set
  30      */
  31     public void setOrder(Integer order) {
  32         this.order = order;
  33     }
  34
  35 }
  01 public static void main(String[] args) {
  02         List<Person> listA = new ArrayList<Person>();
  03         Person p1 = new Person();
  04         Person p2 = new Person();
  05         Person p3 = new Person();
  06
  07         p1.setName("name1");
  08         p1.setOrder(1);
  09         p2.setName("name2");
  10         p2.setOrder(2);
  11         p3.setName("name3");
  12         p3.setOrder(3);
  13
  14         listA.add(p2);
  15         listA.add(p1);
  16         listA.add(p3);
  17
  18         Collections.sort(listA, new Comparator<Person>() {
  19             public int compare(Person arg0, Person arg1) {
  20                 return arg0.getOrder().compareTo(arg1.getOrder());
  21             }
  22         });
  23
  24         for (Person p : listA) {
  25             System.out.println(p.getName());
  26         }
  27     }
  两次执行的结果都是:
  name1
  name2
  name3
分享到:
评论

相关推荐

    java List 排序 Collections.sort

    当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...

    java中list排序

    因此,我们需要找到一种通用的方法来实现对 List 排序。这种方法可以使用泛型和反射机制来实现。我们可以使用 getMethod 和 invoke 方法来动态地取得方法,然后使用 compareTo 方法来比较对象的大小。 在上面的代码...

    java 集合分组与排序

    Java集合框架提供两种主要的排序方式:`Collections.sort()`方法和流API的`sorted()`方法。 - `Collections.sort()`:适用于`List`接口的实现类,如`ArrayList`和`LinkedList`。它直接在原地对列表进行排序,无需...

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

    对于排序,`List` 可以分为两种情况:自然排序和定制排序。 1. **自然排序**:如果 `List` 中的元素是实现了 `Comparable` 接口的对象,那么可以使用 `Collections.sort()` 方法进行自然排序。`Comparable` 接口...

    java List 排序之冒泡排序实例代码

    Java List 排序之冒泡排序实例代码是 Java 语言中实现 List 排序的一种方法。该方法主要使用冒泡排序算法对 List 集合中的元素进行排序。 1.Collections.sort() 排序 Collections.sort() 是 Java 提供的一种排序...

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

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

    JTable表头排序的两种方法

    以上两种方法都能实现`JTable`表头的排序功能。第一种方法适用于简单的排序需求,而第二种方法利用了`RowSorter`的内置功能,更适合复杂场景。在实际开发中,可以根据项目需求和性能考虑选择合适的方法。

    Java List集合排序实现方法解析

    List 集合是 Java 中的一种常用的数据结构,它可以存储多个元素,并提供了许多操作元素的方法,例如添加、删除、修改等。然而,在许多实际应用场景中,我们需要对 List 集合进行排序,以便更好地管理和处理数据。...

    Java对List进行排序的两种实现方法

    本文将详细介绍两种在Java中对List进行排序的方法:实体类实现Comparable接口和使用Comparator接口。 首先,我们来了解一下基本背景。Java的`java.util.List`接口是`java.util.Collection`接口的一个子接口,用于...

    java集合某个字段按照中文拼音排序.docx

    对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用Comparable接口 在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,...

    java常见八种排序算法

    本篇文章将详细探讨Java中常见的八种排序算法,每一种都有其独特的特性和适用场景。 1. **冒泡排序(Bubble Sort)** 冒泡排序是最基础的排序算法之一,通过不断交换相邻的逆序元素来逐步完成排序。它的时间复杂度为...

    Java集合排序及java集合类详解(Collection、List、Map、Set)

    ### Java集合排序及java集合类详解 #### 集合框架概述 集合是Java编程语言中非常核心且广泛使用的部分,对于深入理解和高效使用Java语言至关重要。本文将围绕Java集合框架进行详细介绍,包括Collection、List、Set...

    java中List对象列表实现去重或取出及排序的方法

    在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List对象列表,首先需要重写实体类的equals和hashCode...

    java排序简单介绍

    下面将详细介绍几种常见的Java排序方法。 1. **Java内置排序方法**: - **Arrays.sort()**: 这是Java提供的最基础的排序方法,适用于数组和对象数组。对于基本类型的数组(如int、double等),它使用快速排序或...

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

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

    最快的排序算法 java最快的排序-在Java中对列表进行排序的最快方法,排序算法数据结构

    在 Java 中,对列表进行排序的最快方法是使用Collections.sort()方法,该方法使用的排序算法是 Timsort,它是归并排序和插入排序的结合体,具有高效的性能和稳定性。 在上述代码中,使用了 Comparator 接口来实现...

    java对象排序

    在Java中,我们可以对两种类型的元素进行排序:原始类型(如int、char)和对象。对于对象,排序主要涉及到`Comparable`接口和`Comparator`接口。 - **Comparable接口**:如果一个类的实例需要被排序,那么该类应该...

    java sort排序算法实例完整代码

    // 对List排序 List&lt;Integer&gt; list = Arrays.asList(5, 3, 8, 1, 9); Collections.sort(list); System.out.println(list); // 使用Comparator自定义排序规则 List&lt;Person&gt; people = Arrays.asList( new ...

    Java 三种排序方式

    对于大数据量的排序需求,Java的集合框架如`List.sort()`也使用了优化的排序算法,如TimSort,它是一种混合排序算法,既保证了稳定排序,又能在大部分情况下保持O(n log n)的时间复杂度。 总的来说,了解并熟练掌握...

Global site tag (gtag.js) - Google Analytics