List<T> 排序

原创 2015年11月21日 18:46:49

1、重载Collections.sort方法

package com.fang.dbtest;

public class User {
	private Integer id;
	private String name;
	private Integer age;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

}


package com.fang.dbtest;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;

public class Tests {
	public static void main(String[] arg) {
		List<User> list = new ArrayList<User>();
		User user1 = new User();
		User user2 = new User();
		User user3 = new User();
		user1.setId(1);
		user1.setName("name1");
		user1.setAge(3);
		user2.setId(2);
		user2.setName("name2");
		user2.setAge(2);
		user3.setId(3);
		user3.setName("name3");
		user3.setAge(1);
		list.add(user1);
		list.add(user2);
		list.add(user3);
		// 按照指定的属性升序排序
		Collections.sort(list, new Comparator<User>() {
			public int compare(User arg0, User arg1) {
				return arg0.getAge().compareTo(arg1.getAge());
			}
		});
		for (Iterator<User> it = list.iterator(); it.hasNext();) {
			User user = it.next();
			System.out.println(user.getName());
		}
	}

}

执行结果:

name3
name2
name1



2、就是list泛型中的对象实现Comparable接口:

package com.fang.dbtest;

public class User implements Comparable<User> {
	private Integer id;
	private String name;
	private Integer age;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}
<pre name="code" class="java">        // 按照id 进行排序
	@Override
	public int compareTo(User o) {
		// TODO Auto-generated method stub
		return this.getId().compareTo(o.getId());
	}

}


package com.fang.dbtest;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

public class Tests {
	public static void main(String[] arg) {
		List<User> list = new ArrayList<User>();
		User user1 = new User();
		User user2 = new User();
		User user3 = new User();
		user1.setId(1);
		user1.setName("name1");
		user1.setAge(3);
		user2.setId(2);
		user2.setName("name2");
		user2.setAge(2);
		user3.setId(3);
		user3.setName("name3");
		user3.setAge(1);
		list.add(user1);
		list.add(user2);
		list.add(user3);
		// 按照指定的属性升序排序
		Collections.sort(list);
		// 反转指定列表中元素的顺序。
		Collections.reverse(list);
		Iterator<User> it = list.iterator();
		while (it.hasNext()) {
			User user = it.next();
			System.out.println(user.getName());
		}
	}

}
执行结果:

name3
name2
name1



聊聊学习List<T>搜索与排序的心得

学习列表时候的一些心得和体会
  • feipeng8848
  • feipeng8848
  • 2016年02月26日 10:02
  • 495

List<T> 根据某个字段排序

List list = new ArrayList(); //...... Collections.sort...
  • zhixun2012
  • zhixun2012
  • 2014年01月18日 14:10
  • 2802

建议采用的顺序是 List<T>、List<?>、List<Object>

List、List、1^这三者都可以容纳所有的对象,但使用的顺序应该是首选List,次之List,最后选择List,原因如下: (1) List是确定的某一个类型 List表示的是List集合中的元素...
  • lexang1
  • lexang1
  • 2015年11月02日 22:15
  • 1050

关于Comparable<T>解决List<bean>,依据bean的某个属性对list进行排序

之前在开发的过程中遇到调用Dao,返回一个list集合,需要对list进行排序,排序的标准假如是bean.creatTime(),在从数据库中查询的时候,可以再sql语句中加一个 order by c...
  • Mr_Hou2016
  • Mr_Hou2016
  • 2017年05月12日 16:22
  • 567

Android List<T> 排序

1.T排序 List groupBeans ; Collections.sort(groupBeans,new Comparator(){             public in...
  • rrrgy236116
  • rrrgy236116
  • 2017年06月19日 12:19
  • 97

Collections.sort对List排序的两种方法

一、Collections.sort的简单使用 说到List的排序,第一反应当然是使用Collections.sort,方便简单。下面实现一下~~ private void sortStrings(...
  • wxx614817
  • wxx614817
  • 2016年02月03日 12:23
  • 9156

List<T>采用delegate快速实现排序、查找等操作

List采用delegate快速实现排序、查找等操作       .NET中的List非常方便,但是很遗憾得是没有自带更方便的一些排序、查找函数。比如说,Sort()和Find()方法都包含在Lis...
  • liehuo123
  • liehuo123
  • 2014年05月20日 18:07
  • 4501

List集合排序Sort(Comparison<T> comparison)

List< T > 集合对复杂类型的排序Sort()有4个重载 1.T类型实现了IComparable< T >接口 2.另写一个类,该类实现了IComparer< T > 3.Sort(Com...
  • qwt19900802
  • qwt19900802
  • 2016年01月26日 00:09
  • 365

对ArrayList<T>中按照T的某个属性进行排序

对ArrayList中按照T的某个属性进行排序 1、先定义一个比较的方法 public class A implements Comparator { public int...
  • an13531829360
  • an13531829360
  • 2016年10月22日 11:42
  • 1043

List<T>泛型集合根据对象的某一属性排序

Object t; List list2 = new ArrayList(); Object[] objs = list2.toArray(); for(int...
  • zhengsaisai
  • zhengsaisai
  • 2017年11月17日 15:39
  • 119
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:List<T> 排序
举报原因:
原因补充:

(最多只允许输入30个字)