`
gwh_08
  • 浏览: 335698 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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]
分享到:
评论
1 楼 diyangxia 2014-06-26  
String类型对象比较大小时,是一位一位比较的吧,就是说如果不做变换处理的话,
"2" > "19" ,这就是正确的

相关推荐

    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