【发布时间】:2017-05-29 16:51:01
【问题描述】:
我向this 询问了关于对一维列表做同样事情的问题,我认为将答案应用于二维列表很容易,但事实并非如此。
基于我的代码 Holger's 答案,我想出了这个解决方案:
//list is of type ArrayList<List<Integer>>
list.stream()
.map(l -> Stream.concat(
l.subList(0, l.size() - 1).stream().map(i -> i - 2),
Stream.of(l.get(l.size() - 1)).collect(Collectors.toList())
))
.collect(Collectors.toList());
但是,当我尝试这个时,我得到了编译时错误Cannot infer type argument(s) for <R> map(Function<? super T,? extends R>)。
如何在二维列表上执行此功能?
一些示例输入和输出:
[[1, 2, 3, 4], [5, 6, 7, 8]] 应该输出[[-1, 0, 1, 4], [3, 4, 5, 8]]
【问题讨论】:
标签: java list java-8 java-stream