1.使用stream流进行分组
Map<String, List<String>> collect = list.stream().collect(Collectors.groupingBy(pojo::name));
2.使用stream流进行过滤
List<String> collect = list.stream().filter(a -> a != null && "aaa".equals(a)).collect(Collectors.toList());
3.list根据属性转map
3.1.1简单对象属性转map
//简单对象属性转map
Map<Long, String> collect = list.stream().collect(Collectors.toMap(User::getId, User::getIcon));
3.1.2指定对象中的某个属性作为键值
//给出key重复时,使用哪个key作为主键,以下代码中的(key1, key2) -> key2)代表key1和key2键重复时返回key2做主键
Map<Long, User> map = list.stream().collect(Collectors.toMap(User::getId, Function.identity(), (key1, key2) -> key2));
4.对获得的list其中对象的某个属性进行排序
降序
//使用stream中的sort进行排序 根据其中的属性进行排序
List<User> collect1 = list.stream().sorted(Comparator.comparing(User::getCreateTime).reversed()).collect(Collectors.toList());
升序
//正常升序
list.stream().sorted(Comparator.comparing(User::getAge))
不使用stream排序
// 正序
list.sort(Comparator.comparing(User::getAge));
// 倒序
list.sort(Comparator.comparing(User::getAge).reversed());