`

List排序

阅读更多
package com.nstc.test;

import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * Java提供的List排序方法,是调用了List的父类Collections类中的Sort方法
 * Collections.sort()提供两个重载方法:
 * Collections.sort(list);(Java提供的默认排序方法)
 * Collections.sort(list, Comparator<T>);(可以自定义排序方法)
 * 
 * @author changbl
 *
 */
public class TestSort {
	
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("王硕");
		list.add("李明");
		list.add("刘迪");
		list.add("刘布");
		//默认排序方法
		System.out.println("---------------默认排序方法开始-----------------");
		Collections.sort(list);
		for(String name : list){
			System.out.print(name+"\t");
		}
		System.out.println();
		System.out.println("---------------默认排序方法结束-----------------");
		//利用Collator根据语言排序
		System.out.println("---------------根据java.util.Locale.ENGLISH排序开始-----------------");
		Collections.sort(list,Collator.getInstance(java.util.Locale.ENGLISH));
		for(String name : list){
			System.out.print(name+"\t");
		}
		System.out.println();
		System.out.println("---------------根据java.util.Locale.CHINA排序开始-----------------");
		Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));
		for(String name : list){
			System.out.print(name+"\t");
		}
		System.out.println();
		System.out.println("---------------根据java.util.Locale.CHINA排序结束-----------------");
		System.out.println();
		System.out.println("【暂时告一段落】");
		System.out.println();
		List<Integer> list2 = new ArrayList<Integer>();
		list2.add(5);
		list2.add(87);
		list2.add(54);
		list2.add(290);
		Collections.sort(list2, new SequenceRule());
		System.out.println("----------------实现自定义排序方法1:----------------");
		for(Integer i : list2){
			System.out.print(i+"\t");
		}
		System.out.println();
		System.out.println("----------------实现自定义排序方法1结束----------------");
	}
}

/**
 * 实现自定义排序方法1:
 * 实现Comparator接口,重写compare方法
 * @author changbl
 *
 */
class SequenceRule implements Comparator<Object>{
	@Override
	public int compare(Object o1, Object o2) {
		Integer i1 = (Integer)o1;
		Integer i2 = (Integer)o2;
		return i1.compareTo(i2);
	}
}

/**
 * 实现自定义排序方法2:
 * 实现Comparable接口,重写compareTo方法
 * @author changbl
 *
 */
class SequenceRule2 implements Comparable<Object>{
	@Override
	public int compareTo(Object o) {
		return 0;
	}
}

对象实现Comparable接口的代码如下:

public class Person implements Comparable<Person> {
    private String name;
    private Integer order;
 
    /**
     * @return the name
     */
    public String getName() {
        return name;
    }
 
    /**
     * @param name
     *            the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
 
    /**
     * @return the order
     */
    public Integer getOrder() {
        return order;
    }
 
    /**
     * @param order
     *            the order to set
     */
    public void setOrder(Integer order) {
        this.order = order;
    }
 
    @Override
    public int compareTo(Person arg0) {
        return this.getOrder().compareTo(arg0.getOrder());
    }
 
}

 

public static void main(String[] args) {
    List<Person> listA = new ArrayList<Person>();
    Person p1 = new Person();
    Person p2 = new Person();
    Person p3 = new Person();
 
    p1.setName("name1");
    p1.setOrder(1);
    p2.setName("name2");
    p2.setOrder(2);
    p3.setName("name3");
    p3.setOrder(3);
 
    listA.add(p2);
    listA.add(p1);
    listA.add(p3);
    Collections.sort(listA);
    for (Person p : listA) {
        System.out.println(p.getName());
    }
}

 

0
0
分享到:
评论

相关推荐

    java List排序工具类

    java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List&lt;Person&gt; list = getData(); // 获取无序数据 new ...

    java中list排序

    Java 中 List 排序 Java 中 List 排序是指在数据库中查出来的列表中对不同的字段重新排序。一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的 List 中排序,无疑会提高...

    按照规则,对list排序

    * 对传入的list进行分组排序 * list里面数据格式 [01-01-开头.txt, 01-02-简介.jpg, 11-01-尾声.jpg, 11-03-空白.jpg, 11-04-空白2.jpg, 11-06-空白1.jpg, 11-02-答谢语.txt, 02-01-标题.jpg, 02-09-标题555.jpg, ...

    java List 排序 Collections.sort

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

    实现了MFC list排序

    本篇文章将详细探讨如何实现MFC List控件的排序功能。 在MFC中,`CListCtrl` 类提供了对列表视图控件的操作接口。列表视图可以显示多项数据,每项数据可以包含多个子项,类似于表格。要实现列表的排序,我们需要...

    list排序

    在处理数据时,我们经常需要对列表中的元素进行排序,这正是"list排序"这一主题的核心内容。本篇文章将深入探讨Python中对列表进行排序的方法,包括内置的`sort()`方法和`sorted()`函数,以及相关的排序算法和优化...

    JAVA SortList 通用排序类

    JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。

    CSortList list排序子类

    一个简单的list排序子类,没有封装。大家可以看看。直接调用即可

    java list排序

    java开发,使用list对其进行排序,,易学简单。。。。。。。。。

    c# List类排序方法

    ### c# List类排序方法 #### 一、初始工作与预备知识 在C#中,`List&lt;T&gt;`是一个非常常用的泛型集合类,它提供了动态数组的功能,可以存储任意数量的相同类型元素。当涉及到对List中的数据进行排序时,我们可以采用...

    JAVALIST排序.pdf

    JAVALIST排序.pdf

    list排序 Icompare接口

    在.NET框架中,`List&lt;T&gt;`是一个常用的动态数组,它提供了丰富的操作集合的方法,包括排序。当需要自定义排序规则时,我们可以实现`IComparer&lt;T&gt;`接口。`ICompare`通常指的是`IComparer`,这是一个接口,用于比较两个...

    java List中对象多属性排序及各属性排序设置

    在Java编程中,排序是常见的数据处理操作,特别是在处理集合数据结构时,如List。本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和...

    Java Collections.sort()实现List排序的默认方法和自定义方法

    Java Collections.sort()实现List排序的默认方法和自定义方法 Java Collections.sort()是Java语言中用于对List进行排序的方法,通过使用这个方法可以对List进行默认排序,也可以根据需要实现自定义的排序规则。 ...

    Dui list排序

    在Duilib中,"DuiList" 是一种常见的控件类型,用于展示可排序的数据列表。本篇文章将详细探讨DuiList的排序功能及其相关知识。 首先,我们要理解DuiList的基本概念。DuiList通常用于显示一系列具有相同结构的项目...

    java List排序demo

    当我们需要对`List`中的元素进行排序时,可以利用Java提供的内置排序机制。本篇将详细介绍如何根据指定字段对`List`中的对象进行排序,以`Student`类为例,假设每个`Student`都有一个`grad`属性表示成绩。 首先,...

    VC中排序功能的list control

    “LIST排序”则明确指出了实现的关键功能是列表的排序。 综上所述,`VC中排序功能的list control`是一个自定义的`CListCtrl`类,它扩展了标准`List Control`的功能,允许用户通过点击列标题来对数据进行排序。实现...

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

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

Global site tag (gtag.js) - Google Analytics