2 回答
TA贡献1812条经验 获得超5个赞
我不会使用 aStream来执行此操作,处理子列表会更简单:
arr.subList(0, arr.size() / 2).forEach(s -> s.set(1, "-"));
如果您确实需要使用流(例如,如果您想进行额外的过滤和映射操作),您可以使用 anIntStream来处理索引:
IntStream.range(0, arr.size() / 2)
.forEach(j -> arr.get(j).set(1, "-"));
或者简单地限制您处理的条目数量:
arr.stream()
.limit(arr.size() / 2)
.forEach(s -> s.set(1, "-"));
TA贡献1862条经验 获得超6个赞
这个问题很模糊。最好也提供输出格式,以便有人了解您的需求并帮助您。但是,基于一些假设和启发式方法,我猜这就是您所需要的。如果您想要不同的格式,请让我知道或相应地更改此答案。
这里的另一点是您到目前为止所尝试的内容尚不清楚。您必须预先尝试并在发布问题时提及您所做的事情。
List<List<String>> formattedStrings = source.stream()
.map(sl -> IntStream.range(0, sl.size())
.mapToObj(i -> i == 1 ? sl.get(i).charAt(0) + "-" + sl.get(i).charAt(1) : sl.get(i))
.collect(Collectors.toList()))
.collect(Collectors.toList());
添加回答
举报