东莞品托网站建设怎么推广自己的微信号
背景
在java8中引入了Lambda表达式。其实,他就是一个匿名函数。我们经常会用到一些循环遍历,起始完全就可以通过Lambda来简化我们不必要的操作,下面我们来看一下Lambda常用的方法。
准备条件
@Data@Builderprivate 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练习生》