第一种方法,就是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
分享到:
相关推荐
当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...
因此,我们需要找到一种通用的方法来实现对 List 排序。这种方法可以使用泛型和反射机制来实现。我们可以使用 getMethod 和 invoke 方法来动态地取得方法,然后使用 compareTo 方法来比较对象的大小。 在上面的代码...
Java集合框架提供两种主要的排序方式:`Collections.sort()`方法和流API的`sorted()`方法。 - `Collections.sort()`:适用于`List`接口的实现类,如`ArrayList`和`LinkedList`。它直接在原地对列表进行排序,无需...
对于排序,`List` 可以分为两种情况:自然排序和定制排序。 1. **自然排序**:如果 `List` 中的元素是实现了 `Comparable` 接口的对象,那么可以使用 `Collections.sort()` 方法进行自然排序。`Comparable` 接口...
Java List 排序之冒泡排序实例代码是 Java 语言中实现 List 排序的一种方法。该方法主要使用冒泡排序算法对 List 集合中的元素进行排序。 1.Collections.sort() 排序 Collections.sort() 是 Java 提供的一种排序...
`Collections.sort()` 是 Java 中一种快速且高效地对集合(如 ArrayList)进行排序的方法。可以自定义比较器来指定排序规则。 **示例代码分析**: ```java public class Main { public static void main(String[] ...
以上两种方法都能实现`JTable`表头的排序功能。第一种方法适用于简单的排序需求,而第二种方法利用了`RowSorter`的内置功能,更适合复杂场景。在实际开发中,可以根据项目需求和性能考虑选择合适的方法。
List 集合是 Java 中的一种常用的数据结构,它可以存储多个元素,并提供了许多操作元素的方法,例如添加、删除、修改等。然而,在许多实际应用场景中,我们需要对 List 集合进行排序,以便更好地管理和处理数据。...
本文将详细介绍两种在Java中对List进行排序的方法:实体类实现Comparable接口和使用Comparator接口。 首先,我们来了解一下基本背景。Java的`java.util.List`接口是`java.util.Collection`接口的一个子接口,用于...
对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用Comparable接口 在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,...
本篇文章将详细探讨Java中常见的八种排序算法,每一种都有其独特的特性和适用场景。 1. **冒泡排序(Bubble Sort)** 冒泡排序是最基础的排序算法之一,通过不断交换相邻的逆序元素来逐步完成排序。它的时间复杂度为...
### Java集合排序及java集合类详解 #### 集合框架概述 集合是Java编程语言中非常核心且广泛使用的部分,对于深入理解和高效使用Java语言至关重要。本文将围绕Java集合框架进行详细介绍,包括Collection、List、Set...
在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List对象列表,首先需要重写实体类的equals和hashCode...
下面将详细介绍几种常见的Java排序方法。 1. **Java内置排序方法**: - **Arrays.sort()**: 这是Java提供的最基础的排序方法,适用于数组和对象数组。对于基本类型的数组(如int、double等),它使用快速排序或...
本文将详细介绍如何使用Java对字符串数组按照单词的首字母进行排序的两种方法,并通过代码示例加以说明,帮助读者深入理解并掌握这些技巧。 ### 方法一:使用`Arrays.sort()`方法 在Java中,`java.util.Arrays`类...
在 Java 中,对列表进行排序的最快方法是使用Collections.sort()方法,该方法使用的排序算法是 Timsort,它是归并排序和插入排序的结合体,具有高效的性能和稳定性。 在上述代码中,使用了 Comparator 接口来实现...
在Java中,我们可以对两种类型的元素进行排序:原始类型(如int、char)和对象。对于对象,排序主要涉及到`Comparable`接口和`Comparator`接口。 - **Comparable接口**:如果一个类的实例需要被排序,那么该类应该...
// 对List排序 List<Integer> list = Arrays.asList(5, 3, 8, 1, 9); Collections.sort(list); System.out.println(list); // 使用Comparator自定义排序规则 List<Person> people = Arrays.asList( new ...
对于大数据量的排序需求,Java的集合框架如`List.sort()`也使用了优化的排序算法,如TimSort,它是一种混合排序算法,既保证了稳定排序,又能在大部分情况下保持O(n log n)的时间复杂度。 总的来说,了解并熟练掌握...