我有一个Stream,可以处理所有peek()
方法.我不需要Stream的任何结果,但我需要终端操作才能进行处理.当然我可以用count()
(或任何其他操作)终止Stream ,但这会产生误导,好像我需要Stream终止的一些结果.在这种情况下终止Stream的正确方法是什么?
以下是供参考的代码:
Stream<Collection<NetworkPart>> graphHolders = cutSegment.stream()
.map(this::obtainCollectionFor);
for (NetworkPart part : edgesToNetworkParts.get(originalSegment)) {
part.integrate(cutSegment);
graphHolders = graphHolders.peek(gh -> gh.add(part));
}
graphHolders.count(); // Just to terminate
Run Code Online (Sandbox Code Playgroud)
这就是我从问题中重写代码的方式:
Collection<NetworkPart> partsOwningEdge = edgesToNetworkParts.get(originalSegment);
partsOwningEdge.forEach(part -> part.integrate(cutSegment));
cutSegment.stream()
.map(this::obtainCollectionFor)
.forEach(gh -> gh.addAll(partsOwningEdge));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1027 次 |
最近记录: |