User.java(List集合的泛型类)
public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [name=" + name + ", age=" + age + "]"; } }
Sort.java(测试类<按照User对象里的age字段进行排序>)
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Sort { public static void main(String[] args) { List<User> list = new ArrayList<User>(); // 定义对象并set值 User user = null; for (int i = 0; i < 10; i++) { user = new User(); user.setName("zhangsan" + (i + 1)); user.setAge((int) (Math.random() * 100 + 1)); list.add(user); } System.out.println("排序前:"); for (User u : list) { System.out.println(u.toString()); } // 按照年龄升序: Collections.sort(list, new Comparator<User>() { @Override public int compare(User u1, User u2) { if (u1.getAge() > u2.getAge()) { return 1; } if (u1.getAge() == u2.getAge()) { return 0; } return -1; } }); System.out.println("升序,排序后:"); for (User u : list) { System.out.println(u.toString()); } // 按照年龄降序: Collections.sort(list, new Comparator<User>() { public int compare(User u1, User u2) { if (u1.getAge() > u2.getAge()) { return -1; } if (u1.getAge() == u2.getAge()) { return 0; } return 1; } }); System.out.println("降序,排序后:"); for (User u : list) { System.out.println(u.toString()); } } }
测试结果输出如下:
排序前:
User [name=zhangsan1, age=10]
User [name=zhangsan2, age=34]
User [name=zhangsan3, age=51]
User [name=zhangsan4, age=32]
User [name=zhangsan5, age=5]
User [name=zhangsan6, age=48]
User [name=zhangsan7, age=39]
User [name=zhangsan8, age=16]
User [name=zhangsan9, age=80]
User [name=zhangsan10, age=33]
升序,排序后:
User [name=zhangsan5, age=5]
User [name=zhangsan1, age=10]
User [name=zhangsan8, age=16]
User [name=zhangsan4, age=32]
User [name=zhangsan10, age=33]
User [name=zhangsan2, age=34]
User [name=zhangsan7, age=39]
User [name=zhangsan6, age=48]
User [name=zhangsan3, age=51]
User [name=zhangsan9, age=80]
降序,排序后:
User [name=zhangsan9, age=80]
User [name=zhangsan3, age=51]
User [name=zhangsan6, age=48]
User [name=zhangsan7, age=39]
User [name=zhangsan2, age=34]
User [name=zhangsan10, age=33]
User [name=zhangsan4, age=32]
User [name=zhangsan8, age=16]
User [name=zhangsan1, age=10]
User [name=zhangsan5, age=5]