排序
class User {
private String name;
private int age;
}
升序:根据年龄升序排列
List<User> userList = new ArrayList<>();
userList.add(new User("张三", 23));
userList.add(new User("王五", 25));
userList.add(new User("李四", 24));
userList = userList.stream().sorted(Comparator.comparing(User::getAge)).collect(Collectors.toList());
System.out.println(userList); //[User{name='张三', age=23}, User{name='李四', age=24}, User{name='王五', age=25}]
降序:根据年龄降序排列
userList = userList.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList());
System.out.println(userList); //[User{name='王五', age=25}, User{name='李四', age=24}, User{name='张三', age=23}]
分组:根据名称分组
List<User> userList = new ArrayList<>();
userList.add(new User("张三", 23));
userList.add(new User("李四", 24));
userList.add(new User("张三", 26));
userList.add(new User("王五", 27));
userList.add(new User("李四", 28));
Map<String, List<User>> nameMap = userList.stream().collect(Collectors.groupingBy(User::getName));
System.out.println(nameMap); //{李四=[User{name='李四', age=28}, User{name='李四', age=24}], 张三=[User{name='张三', age=26}, User{name='张三', age=23}], 王五=[User{name='王五', age=27}]}
过滤:过滤年龄大于25的
方法1
userList = userList.stream().filter(user -> user.getAge() > 25).collect(Collectors.toList());
System.out.println(userList); //[User{name='张三', age=26}, User{name='王五', age=27}, User{name='李四', age=28}]
方法2
userList.removeIf(user -> user.getAge() <= 25);
System.out.println(userList); //[User{name='张三', age=26}, User{name='王五', age=27}, User{name='李四', age=28}]
@浅见 @如有疏漏请帮忙补充完善 @开发一家人 0000005 待完善