注: 本文转载其他人 原文链接:http://gwh-08.iteye.com/blog/1233401/
/** * @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]
注:如果:return b1.getOrder().compareTo(b2.getOrder()); 改为
return b2.getOrder().compareTo(b1.getOrder());
那么list中的结果正好相反
相关推荐
当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...
Java中的`Arrays.sort()`和`Collections.sort()`是两个常用的排序函数,它们分别用于对数组和集合进行排序。这两个函数在内部实现上有所不同,但都基于高效的排序算法。 首先,`Collections.sort()`方法在处理列表...
Java Collections.sort 的两种用法详解 ...Java Collections.sort 方法提供了两种用法,分别是对基本类型和自定义类的排序。通过实现 Comparator 接口的 compare 方法,我们可以完成自定义排序规则。
`Collections.sort()`有两种主要的排序方式:一种是基于元素的自然顺序,另一种是通过自定义比较器`Comparator`。 首先,我们来详细讲解`Collections.sort()`的默认排序机制。当传入的列表元素实现了`Comparable`...
本文将深入探讨两种使用Collections.sort方法对List排序的方法。 首先,第一种方法是让List中的对象实现Comparable接口。Comparable接口定义了一个自然排序的规则,使得实现了该接口的类的对象可以进行比较并排序。...
1. **自然排序**:如果 `List` 中的元素是实现了 `Comparable` 接口的对象,那么可以使用 `Collections.sort()` 方法进行自然排序。`Comparable` 接口定义了一个 `compareTo()` 方法,该方法用于比较对象之间的大小...
在这个场景下,我们使用`Collections.sort()`函数对一个包含Map对象的List进行排序,然后将排序后的数据适配到ListView中。以下是关于这个主题的详细解释。 **一、Map与List的关系** 在Java中,Map是一种键值对的...
通过了解和掌握`Collections.sort()`方法的两种形式,开发者可以更灵活地处理集合排序问题,提升代码的可读性和可维护性。在编写Java程序时,充分利用这些工具类的方法,可以提高开发效率并保证代码质量。
对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用Comparable接口 在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,...
Java集合框架提供两种主要的排序方式:`Collections.sort()`方法和流API的`sorted()`方法。 - `Collections.sort()`:适用于`List`接口的实现类,如`ArrayList`和`LinkedList`。它直接在原地对列表进行排序,无需...
在Java中,集合主要分为两种类型:List和Set。List接口(如ArrayList和LinkedList)保持元素的顺序,并允许重复元素;Set接口(如HashSet和TreeSet)不允许重复元素,不保证元素的顺序。对于List接口,我们经常需要...
在`List`对象集合中使用`Comparator`进行排序,通常需要调用`Collections.sort()`或`list.sort()`方法。例如,假设我们有一个`Person`类,其中包含`name`和`age`属性,我们想要根据年龄对`Person`对象列表进行排序:...
Java中的`sort`排序算法是Java集合框架的重要组成部分,主要用于对List接口的实现类进行排序。这个算法在Java中主要体现在`java.util.Arrays`和`java.util.Collections`两个类中,提供了对数组和集合的排序功能。...
这是因为`Sort()`方法默认使用元素的自然顺序进行排序,但我们的`Student`类并没有实现`IComparable<T>`接口,因此无法确定两个`Student`对象之间的顺序关系。如果直接调用`Sort()`方法,将会引发`System....
Java 的 List 集合提供了多种排序方法,包括使用 `Collections.sort()` 方法、使用 `List.sort()` 方法,以及使用 `Comparator` 接口等。 使用 `Collections.sort()` 方法 `Collections.sort()` 方法是 Java 集合...
在Java编程中,对List集合中的对象进行多属性排序是一项常见的任务。这通常涉及到自定义比较逻辑,以满足复杂的数据排序需求。在这个“java版本List中对象多属性排序.rar”压缩包中,我们可能找到了一个关于如何在...
`Collections.sort()` 是 Java 中一种快速且高效地对集合(如 ArrayList)进行排序的方法。可以自定义比较器来指定排序规则。 **示例代码分析**: ```java public class Main { public static void main(String[] ...
本文将详细解析Java中使用`sort`方法对集合排序的两种主要方式:基于`Comparable`接口和`Comparator`接口。 首先,我们来看第一种方式,通过实现`Comparable`接口来排序。`Comparable`接口定义了一个`compareTo`...
要对`List<User>`进行排序,我们需要使用Java的`Collections.sort()`方法。然而,`Collections.sort()`默认只能对原始类型(如int、char等)或实现了`Comparable`接口的对象进行排序。对于自定义的泛型对象,我们...
《Java Generics and Collections》是Java开发者必备的参考资料,它深入探讨了Java编程中的泛型(Generics)和集合(Collections)这两个核心概念。在Java编程中,泛型和集合框架是提高代码效率、可读性和类型安全性...