【发布时间】:2017-09-04 21:21:51
【问题描述】:
我想找出一个字符串流在Set<String> 中是否至少出现了另一个String。我想出了两个解决方案。
性能方面,哪种方法最好/推荐?
1)
return source.stream().filter(this::streamFilter).count() > 0;
2)
return source.stream().anyMatch(this::streamFilter);
这里是streamFilter方法:
private boolean streamFilter(String str) {
return filterKeywords.contains(str.toLowerCase());
}
过滤关键字:private Set<String> filterKeywords;
或者还有比这更好的方法吗?
【问题讨论】:
-
#2 因为当结果确定时它会停止搜索。正如 javadoc 所说:这是short-circuiting terminal operation。
-
@Andreas 我也这么认为,想确定一下:)
标签: java java-8 java-stream