背景
在java8中引入了Lambda表达式。其实,他就是一个匿名函数。我们经常会用到一些循环遍历,起始完全就可以通过Lambda来简化我们不必要的操作,下面我们来看一下Lambda常用的方法。
准备条件
@Data
@Builder
private static class Person {
private Integer id;
private String name;
}
1、取List中某个值组成新的List或者Set
这个例子会用到我们Lambda中的map
语法:
List<Integer> result = list.stream().map(Persion::getId).collect(Collectors.toList());
Set<Integer> result = list.stream().map(Persion::getId).collect(Collectors.toSet());
2、取List中的两个值作为map(健不能重复且不能为null)
语法:
Map<Integer, String> stringMap = list.stream().collect(Collectors.toMap(Persion::getId, Persion::getName));
3、groupBy的操作
语法:
Map<String, List<Person>> stringListMap = list.stream().collect(Collectors.groupingBy(Person::getName));
4、取两个List集合的交集
语法:
List<Integer> intersect = listA .stream() .filter(a -> listB.stream().anyMatch(b -> Objects.equals(a, b))) .collect(Collectors.toList());
5、取两个List集合的差集
语法:
List<Integer> intersect1 = listA .stream() .filter(a -> listB.stream().noneMatch(b -> Objects.equals(a, b))) .collect(Collectors.toList());
好了,今天关于Java8中Lambda表达式之Collection 的常见用法就到这里。
欢迎大家点击下方卡片,关注《coder练习生》
本文介绍了Java8中Lambda表达式的应用,包括使用map方法从List转换为新的List或Set,构建Map,按指定字段分组,以及计算两个List的交集和差集。这些示例展示了Lambda如何简化代码和提高效率。
2269

被折叠的 条评论
为什么被折叠?



