🎊专栏【JavaSE】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【如愿】
🥰欢迎并且感谢大家指出我的问题
结合了lambda表达式,起到了简化集合,数组的作用
中间方法对流水线上的数据进行操作终结方法对流水线上的数据进行操作

由于双列集合不能直接获取Stream流,我们可以所有下面2种方法来解决
使用keySet()获得所有的键

使用entrySet()获得所有的键值对对象




中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程
修改Stream流中的数据,不会影响原来集合或数组中的数据

可以多次过滤


为了解决上图的问题,我们可以使用链式编程



依赖的是hashCode和equals方法





然后按ctrl+alt+v自动生成左边

发现是object类型的

如果我们想把数据放到指定类型中,例如String类型,那么一个怎么写呢



list.stream()
.filter(s->"男".equals(s.split("-")[1]))
.collect(Collectors.toMap(键的规则,值的规则));
补全后是
list.stream()
.filter(s->"男".equals(s.split("-")[1]))
.collect(Collectors.toMap(new Function<String, Object>() {
@Override
public Object apply(String s) {
return null;
}
},
new Function<String, Object>() {
@Override
public Object apply(String s) {
return null;
}
}));
为什么new后面是Function
查看toMap的源码,发现里面就是Function

使用map进行收集时,键不能重复
