有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么MapAPI在Java中不提供流功能?

我同意我们可以在任何地图上获得入口集,然后创建一个入口流。但我仍然想知道,在Java8中不提供流功能来映射层次结构的原因是什么


共 (2) 个答案

  1. # 1 楼答案

    流API允许您以抽象的方式处理单个元素(并行、顺序、动态生成、无限供应、yadayada)

    一个映射每个“项”(一个键,一个值)有2个元素

    流所拥有的每个方法都需要进行调整以接受2个参数,或者,我们重用流API提供的所有基础设施,让您通过Map.Entry项进行流处理,这些项是单个元素

    然后问题归结为:为什么没有一些语法sugar/API快捷方式,这样我就可以写map.stream()而不是map.entrySet().stream()。这是因为java更喜欢这样一种选择,而不是隐式的:您想在条目上进行流式处理吗?可以写下来

  2. # 2 楼答案

    让我们想象一下地图中有方法。 所以它应该同时返回一个键和值流,对吗? 由于BiStream还没有被引入(不确定它是否会被引入),所以唯一的可能性是将两者都封装到单个对象中(Entry?)。但您可以从entrySet中获得的条目流,正如您已经声明的那样。 因此,向entrySet添加这样一个带有简单委托的方法听起来并不合理