通过在Java中编写应用程序,有许多用例 java.util.Collection
。
以来 java.util.stream.Stream
随着Java 8的推出,我遇到了一些很难决定使用什么的用例。
例如: 您将编写一些util-methods。
public static List<?> filterHashToList(int hash, Collection<?> toFilter) {
return toFilter.stream()
.filter((Object o) -> hash == o.hashCode())
.collect(Collectors.toCollection(LinkedList::new));
}
怎么样这样写:
public static List<?> filterHashToList(int hash, Collection<?> toFilter) {
List<Object> result = new LinkedList<>();
for(Object o : toFilter) {
if(hash == o.hashCode()) {
result.add(o);
}
}
return result;
}
两种方法都会产生相同的结果。 java.util.stream.Stream
和 java.util.stream.Collector
是接口,因此如果我使用自定义流和收集器,实现也会有所不同。
我认为有很多实现使用旧的fashoined循环方式。
那么,是否有可能通过用例回答使用,流或循环的内容? 如果是这样,是否必须在适当的时候更新所有实施?
或者我应该通过实现util-methods提供两种方式? 或者我是否应该在过滤过程之后提供一个返回流的mthed,以便在需要时也可以使用该流?