List<T> 排序

来源:互联网 发布:广告终结者 mac 编辑:程序博客网 时间:2024/06/05 10:33

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 进行排序@Overridepublic int compareTo(User o) {// TODO Auto-generated method stubreturn 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



0 0
原创粉丝点击