1、分组
List里面的对象元素,以某个属性来分组,例如,以id分组,将id相同的放在一起:
Map<Integer, List<Apple>> groupBy = appleList.stream().collect(Collectors.groupingBy(Apple::getId));
排序
Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
2List转Map
// 常用方式
Map<String, String> map = accounts.stream()
.collect(Collectors.toMap(Account::getId, Account::getUsername));
// 收集成实体本身map
Map<Long, Account> map = accounts.stream()
.collect(Collectors.toMap(Account::getId, account -> account));
// account -> account是一个返回本身的lambda表达式,其实还可以使用Function接口中的一个默认方法代替,使整个方法更简洁优雅:
Map<Long, Account> map = accounts.stream()
.collect(Collectors.toMap(Account::getId, Function.identity()));
/** 上面的实现如果id有重复情况会报错(java.lang.IllegalStateException: Duplicate key