- Lambda 表达式归档
// Person集合 List<Person> list = new ArrayList<>();
-
去重 distinct
// 根据对象属性name去重,返回Person集合 List<Person> persons = list.stream().collect( collectingAndThen(toCollection( () -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new)); // 根据对象属性name去重,返回name集合 List<String> names = list.stream() .map(Person::getName).distinct().collect(Collectors.toList());
-
list转map toMap
/** * toMap集合里面如果有重复的数据key,会报Duplicate key错误 * 如两个Person的Id都是1,就会报上面的错误 * 可以用(k1, k2) -> k1来设置,如果有重复的key,保留k1舍弃k2 */ Map<String, Person> p = list.stream() .collect(Collectors.toMap(Person::getId, v -> v, (k1, k2) -> k1));
-
过滤 filter
// 根据指定条件过滤,符合条件返回true,否则返回false List<String> names = list.stream() .filter(p -> { return "李四".equals(p.getName)}).collect(Collectors.toList());