【发布时间】:2015-01-13 23:50:07
【问题描述】:
我创建了两个 Stream
Stream<String> first= ...
Stream<String> second= ...
他们都有数字。假设第一个文件有 1 到 1000,第二个文件有 25 到 35。我想检查第一个文件是否包含秒数。
first.filter(s-> !s.contains(second.toString())
.collect(Collectors.toList());
如果我将second.toString() 替换为“10”,那么它可以工作,但我如何检查整个流,而不仅仅是一个字符或字符串?
【问题讨论】:
-
“包含流”是什么意思?您的意思是
first中的一个元素包含第二个中存在的每个字符串吗?第二个的每个元素都出现在第一个的某个地方?什么? -
这不是
Stream的好用例。如果流不是无限的(您无法真正检查),请将它们收集到Sets 或Lists 并与containsAll进行比较。 -
我假设您的意思是“检测第一个中的哪些也在第二个中?”
标签: java functional-programming java-8 java-stream