首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java集合结果设计

java集合结果设计
EN

Stack Overflow用户
提问于 2016-10-16 13:44:32
回答 1查看 83关注 0票数 0

我正在开发一个用于收集过滤的小实用程序。我已经为它做了编码。我所做的是迭代原始集合并找到筛选器匹配,如果找到匹配项,则将结果添加到新集合(结果集合)。最后,将结果集合存储到原始集合中。这是一个好主意,收集结果存储回原始收藏吗?我需要以流畅的界面风格设计这个过滤框架。请找到下面的代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-16 14:58:07

一开始,修改原始集合是非常糟糕的做法,因为您只能应用一次筛选器,而且您应该始终记住,您的原始集合可以更改。这是通向虫子的公路。

同时使用谓词代替过滤器或使过滤器实现谓词,其过滤方式更加灵活方便。

示例:

代码语言:javascript
复制
class Filter<T> implements Predicate<T> {}

您可以创建过滤器,然后将其传递给filter方法。

还请记住,您的实用程序应该是线程安全的,最好使用以下方法:

代码语言:javascript
复制
public final CollectionMapper<T> filter(Filter<T> filter) {
    Collection<T> result = new ArrayList<>();
    Iterator<T> iterator = orginal.iterator();
    while (iterator.hasNext()) {
        T t = iterator.next();

        if (filter.match(t)) {
            result.add(t);
        }

    }

    return new CollectionMapper<>(result);
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40070960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档