我有以下代码:
Stream<String> lines = reader.lines();
如果第一个字符串等于"email"
,我想从流中删除第一个字符串。对于流中的其他字符串,我不需要此检查。
我该如何做到?
当然,我可以将其转换为列表,然后使用旧式进行循环,但进一步我需要再次播放。
虽然在您从阅读器构造出一行流之后,阅读器将处于未指定状态,但在执行此操作之前,阅读器将处于定义良好的状态。
如果您没有列表,而只能用Stream
来做,则可以用变量来做。
为了避免检查文件每一行的条件,我只是单独读取并检查第一行,然后在其余行上运行管道而不检查条件:
@@ Arnouds的答案是正确的。您可以为第一行创建一个流,然后如下进行比较,
要根据元素的索引过滤元素,可以在处理AtomicInteger
时使用Stream
存储和增加索引:
更加复杂,从this snippet中得到一些启发。
这里是Collectors.reducing
的示例。但最终还是创建了一个列表。