Java8 Lambda 表达式
Posted 天河一粟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java8 Lambda 表达式相关的知识,希望对你有一定的参考价值。
- 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());
以上是关于Java8 Lambda 表达式的主要内容,如果未能解决你的问题,请参考以下文章