filter():
1,查找集合中的满足条件的第一个对象。
Optional<A> firstA= AList.stream() .filter(a -> "张三".equals(a.getUserName())) .findFirst();
2,如果想返回集合呢,可是使用这个
List<A> firstA= AList.stream() .filter(a -> "张三".equals(a.getUserName())) .collect(Collectors.toList());
map():
3,抽取list对象中所有的id的集合
List<Long> idList = AList.stream.map(A::getId).collect(Collectors.toList());
抽取Map中的value值:
Map<Integer,Integer>data=new HashMap<>();
data.put(1, 10);
data.put(2, 20);
data.put(3, 30);
List<Integer> list = data.entrySet().stream().map(Entry::getValue).collect(Collectors.toList());
System.out.println(list);
结果:[10, 20, 30]
map就是把entry的value值映射出来,最后再用Collectors转成list
foreach():
抽取同上Map中的value值:
map.forEach((k,v)->{
System.out.println(v);
});
结果:[10, 20, 30]
foreach可以与filter等结合使用
list.forEach(item -> {
//对item的逻辑操作
if (weekIds.contains(item.getWeekId())) {
String weekName = List.stream().filter(y -> y.getId().equals(item.getWeekId())).collect(Collectors.toList()).get(0).getDictionaryName();
item.setWeekName(weekName);
}
});