stream(流) 排序
public class StreamMain {
public static void main(String[] args) {
List<User> userList = new ArrayList();
userList.add(new User("张1", 12, "男"));
userList.add(new User("张2", 20, "女"));
userList.add(new User("张3", 18, "男"));
userList.add(new User("张4", 24, "女"));
userList.add(new User("张5", 16, "男"));
userList.add(new User("张1", 12, "男"));
// 根据用户年龄由小到大排序
List<User> list = userList.stream().sorted((x, y) -> Integer.compare(x.getAge(), y.getAge())).collect(Collectors.toList());
// 函数式接口排序 由小到大
//List<User> list = userList.stream().sorted(Comparator.comparingInt(User::getAge)).collect(Collectors.toList());
// 函数式接口排序 由大到小
//List<User> list = userList.stream().sorted(Comparator.comparingInt(User::getAge).reversed()).collect(Collectors.toList());
System.out.println(list);
}
}
结果
[User(name=张1, age=12, sex=男), User(name=张1, age=12, sex=男), User(name=张5, age=16, sex=男), User(name=张3, age=18, sex=男), User(name=张2, age=20, sex=女), User(name=张4, age=24, sex=女)]