sort(List<T> list, Comparator<? super T> c) 根据比较器产生的顺序排序

来源:互联网 发布:反射 java 编辑:程序博客网 时间:2024/03/28 18:57

1.User实体类:

package com.book.model;public class User {private String name;private String age;public User(String name, String age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}}

2.ComparatorUser(自定比较器)

package com.company.lib.controllers;import java.util.Comparator;import com.book.model.User;public class ComparatorUser implements Comparator {@Overridepublic int compare(Object o1, Object o2) {User user0 = (User) o1;User user1 = (User) o2;// 首先比较age,其实比较姓名int flag = user0.getAge().compareTo(user0.getAge());if (flag == 0) {return user0.getName().compareTo(user0.getName());}else {return flag;}}}

3.测试类

package com.company.lib.controllers;import java.util.ArrayList;import java.util.Collections;import java.util.List;import com.book.model.User;public class SortTest {public static void main(String[] args) {List<User> userlist = new ArrayList<User>();userlist.add(new User("dd", "4"));userlist.add(new User("aa", "1"));userlist.add(new User("ee", "5"));userlist.add(new User("bb", "2"));userlist.add(new User("ff", "5"));userlist.add(new User("cc", "3"));userlist.add(new User("gg", "6"));ComparatorUser comparator = new ComparatorUser();Collections.sort(userlist, comparator);for (int i = 0; i < userlist.size(); i++) {User u = (User) userlist.get(i);System.out.println(u.getAge() + " , " + u.getName());}}}

4.结果:

4 , dd
1 , aa
5 , ee   --age 5的   ee在前
2 , bb
5 , ff
3 , cc
6 , gg

0 0
原创粉丝点击