相关疑难解决方法(0)

为什么java.util.Collection没有实现新的Stream接口?

我花了一些时间开始研究关于流和lambdas的java-8嗡嗡声.让我吃惊的是,你不能应用流操作,例如.map(),.filter()直接上java.util.Collection.是否存在技术原因导致java.util.Collection接口未通过这些Stream操作的默认实现进行扩展?

谷歌搜索了一下,我看到很多人按照以下模式编码的例子:

List<String> list = someListExpression;
List<String> anotherList = list.stream().map(x -> f(x)).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

如果你的代码中有很多这些流操作,那就变得非常笨拙了.由于.stream()并且.collect()与您想表达的内容完全无关,您宁愿说:

List<String> list = someListExpression;
List<String> anotherList = list.map(x -> f(x));
Run Code Online (Sandbox Code Playgroud)

java lambda functional-programming java-8 java-stream

47
推荐指数
1
解决办法
3445
查看次数

为什么`List`在有`forEach`时没有`map`默认方法?

我已经研究了在Java 8中编写基于流的代码,并注意到了一种模式,即我经常有一个列表,但需要通过对每个元素应用一个简单的映射将其转换为另一个列表.写完.stream().map(...).collect(Collections.toList())又一次,我记得我们已经List.forEach找到了,List.map但显然这个默认方法还没有添加.

为什么List.map()(EDIT:或List.transform()or List.mumble())没有添加(这是一个历史问题),是否有一个简单的速记使用默认运行时库中的其他方法做同样的事情,我没有注意到?

java java-8

6
推荐指数
2
解决办法
159
查看次数