`

list集合Collections.sort排序的两种用法

阅读更多
注:
本文转载其他人
原文链接: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;
	}
}

打印的结果为:
&nbsp;[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中的结果正好相反

分享到:
评论

相关推荐

    java List 排序 Collections.sort

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

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

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

    详解java Collections.sort的两种用法

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

    详解Java中Collections.sort排序

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

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

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

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

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

    listview按序排列显示

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

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

    通过了解和掌握`Collections.sort()`方法的两种形式,开发者可以更灵活地处理集合排序问题,提升代码的可读性和可维护性。在编写Java程序时,充分利用这些工具类的方法,可以提高开发效率并保证代码质量。

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

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

    java 集合分组与排序

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

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

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

    List对象集合的排序:比较器Comparator(简单例子)

    在`List`对象集合中使用`Comparator`进行排序,通常需要调用`Collections.sort()`或`list.sort()`方法。例如,假设我们有一个`Person`类,其中包含`name`和`age`属性,我们想要根据年龄对`Person`对象列表进行排序:...

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

    Java中的`sort`排序算法是Java集合框架的重要组成部分,主要用于对List接口的实现类进行排序。这个算法在Java中主要体现在`java.util.Arrays`和`java.util.Collections`两个类中,提供了对数组和集合的排序功能。...

    c# List类排序方法

    这是因为`Sort()`方法默认使用元素的自然顺序进行排序,但我们的`Student`类并没有实现`IComparable&lt;T&gt;`接口,因此无法确定两个`Student`对象之间的顺序关系。如果直接调用`Sort()`方法,将会引发`System....

    java list集合排序按某一属性排序操作

    Java 的 List 集合提供了多种排序方法,包括使用 `Collections.sort()` 方法、使用 `List.sort()` 方法,以及使用 `Comparator` 接口等。 使用 `Collections.sort()` 方法 `Collections.sort()` 方法是 Java 集合...

    java版本List中对象多属性排序.rar

    在Java编程中,对List集合中的对象进行多属性排序是一项常见的任务。这通常涉及到自定义比较逻辑,以满足复杂的数据排序需求。在这个“java版本List中对象多属性排序.rar”压缩包中,我们可能找到了一个关于如何在...

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

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

    Java sort集合排序的两种方式解析

    本文将详细解析Java中使用`sort`方法对集合排序的两种主要方式:基于`Comparable`接口和`Comparator`接口。 首先,我们来看第一种方式,通过实现`Comparable`接口来排序。`Comparable`接口定义了一个`compareTo`...

    LIST泛型排序

    要对`List&lt;User&gt;`进行排序,我们需要使用Java的`Collections.sort()`方法。然而,`Collections.sort()`默认只能对原始类型(如int、char等)或实现了`Comparable`接口的对象进行排序。对于自定义的泛型对象,我们...

    Java Generics and Collections.chm

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

Global site tag (gtag.js) - Google Analytics