为什么MapAPI在Java中不提供流功能? 4 日,16 小时 Questions & Answers 69 我同意我们可以在任何地图上获得入口集,然后创建一个入口流。但我仍然想知道,在Java8中不提供流功能来映射层次结构的原因是什么
# 1 楼答案 流API允许您以抽象的方式处理单个元素(并行、顺序、动态生成、无限供应、yadayada) 一个映射每个“项”(一个键,和一个值)有2个元素 流所拥有的每个方法都需要进行调整以接受2个参数,或者,我们重用流API提供的所有基础设施,让您通过Map.Entry项进行流处理,这些项是单个元素 然后问题归结为:为什么没有一些语法sugar/API快捷方式,这样我就可以写map.stream()而不是map.entrySet().stream()。这是因为java更喜欢这样一种选择,而不是隐式的:您想在条目上进行流式处理吗?可以写下来
# 2 楼答案 让我们想象一下地图中有方法流。 所以它应该同时返回一个键和值流,对吗? 由于BiStream还没有被引入(不确定它是否会被引入),所以唯一的可能性是将两者都封装到单个对象中(Entry?)。但您可以从entrySet中获得的条目流,正如您已经声明的那样。 因此,向entrySet添加这样一个带有简单委托的方法听起来并不合理
# 1 楼答案
流API允许您以抽象的方式处理单个元素(并行、顺序、动态生成、无限供应、yadayada)
一个映射每个“项”(一个键,和一个值)有2个元素
流所拥有的每个方法都需要进行调整以接受2个参数,或者,我们重用流API提供的所有基础设施,让您通过
Map.Entry
项进行流处理,这些项是单个元素然后问题归结为:为什么没有一些语法sugar/API快捷方式,这样我就可以写
map.stream()
而不是map.entrySet().stream()
。这是因为java更喜欢这样一种选择,而不是隐式的:您想在条目上进行流式处理吗?可以写下来# 2 楼答案
让我们想象一下地图中有方法流。 所以它应该同时返回一个键和值流,对吗? 由于BiStream还没有被引入(不确定它是否会被引入),所以唯一的可能性是将两者都封装到单个对象中(Entry?)。但您可以从entrySet中获得的条目流,正如您已经声明的那样。 因此,向entrySet添加这样一个带有简单委托的方法听起来并不合理