何时应使用流?
我只是在使用a及其方法时遇到了一个问题。虽然我知道如何使用它们,但我不太确定何时使用它们。List
stream()
例如,我有一个列表,其中包含指向不同位置的各种路径。现在,我想检查单个给定路径是否包含列表中指定的任何路径。我想根据是否满足条件返回 a。boolean
当然,这本身并不是一项艰巨的任务。但是我想知道我是否应该使用流,或者for(-each)循环。
列表
private static final List<String> EXCLUDE_PATHS = Arrays.asList(
"my/path/one",
"my/path/two"
);
使用流的示例:
private boolean isExcluded(String path) {
return EXCLUDE_PATHS.stream()
.map(String::toLowerCase)
.filter(path::contains)
.collect(Collectors.toList())
.size() > 0;
}
使用 for-each 循环的示例:
private boolean isExcluded(String path){
for (String excludePath : EXCLUDE_PATHS) {
if (path.contains(excludePath.toLowerCase())) {
return true;
}
}
return false;
}
请注意,该参数始终为小写。path
我的第一个猜测是,for-each 方法更快,因为如果满足条件,循环会立即返回。而流仍将遍历所有列表条目以完成筛选。
我的假设是否正确?如果是这样,为什么(或者更确切地说是什么时候)我会使用呢?stream()