首先从流中删除元素(索引为零)

问题描述 投票:5回答:7

我有以下代码:

Stream<String> lines = reader.lines();

如果第一个字符串等于"email",我想从流中删除第一个字符串。对于流中的其他字符串,我不需要此检查。

我该如何做到?

P.S。

当然,我可以将其转换为列表,然后使用旧式进行循环,但进一步我需要再次播放。

java java-stream java-11
7个回答
5
投票

虽然在您从阅读器构造出一行流之后,阅读器将处于未指定状态,但在执行此操作之前,阅读器将处于定义良好的状态。


3
投票

如果您没有列表,而只能用Stream来做,则可以用变量来做。


1
投票

为了避免检查文件每一行的条件,我只是单独读取并检查第一行,然后在其余行上运行管道而不检查条件:


1
投票

@@ Arnouds的答案是正确的。您可以为第一行创建一个流,然后如下进行比较,


0
投票

要根据元素的索引过滤元素,可以在处理AtomicInteger时使用Stream存储和增加索引:


0
投票

更加复杂,从this snippet中得到一些启发。


0
投票

这里是Collectors.reducing的示例。但最终还是创建了一个列表。

© www.soinside.com 2019 - 2024. All rights reserved.