小编nar*_*oid的帖子

使用流或循环之间的决定

通过在Java中编写应用程序,有许多用例java.util.Collection.自从java.util.stream.StreamJava 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));
}
Run Code Online (Sandbox Code Playgroud)

怎么样这样写:

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;
}
Run Code Online (Sandbox Code Playgroud)

两种方法都会产生相同的结果.java.util.stream.Stream并且java.util.stream.Collector是接口,因此如果我使用自定义流和收集器,实现也会有所不同.

我认为有很多实现使用旧的fashoined循环方式.

那么,是否有可能通过用例回答使用,流或循环的内容?如果是这样,是否必须在适当的时候更新所有实施?

或者我应该通过实现util-methods提供两种方式?或者我是否应该在过滤过程之后提供一个返回流的mthed,以便在需要时也可以使用该流?

java collections loops java-8 java-stream

12
推荐指数
2
解决办法
1386
查看次数

标签 统计

collections ×1

java ×1

java-8 ×1

java-stream ×1

loops ×1