首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何查找在集合中具有给定属性的所有对象?

如何查找在集合中具有给定属性的所有对象?
EN

Stack Overflow用户
提问于 2018-03-06 01:59:52
回答 2查看 0关注 0票数 0

我有一些复杂的对象,比如猫,它有很多属性,比如年龄,喜欢的猫食等等。

,我可以编写一个自定义方法来查找那些具有特定属性的Cat,但这会让许多属性变得繁琐; 有没有一些通用的方式来做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2018-03-06 10:40:22

你可以编写一个方法,该方法需要一个定义check(Cat)方法的接口实例,该方法可以用任何你想要的属性检查来实现:

代码语言:javascript
复制
public interface Checker<T> {
    public boolean check(T obj);
}

public class CatChecker implements Checker<Cat> {
    public boolean check(Cat cat) {
        return (cat.age == 3); // or whatever, implement your comparison here
    }
}

// put this in some class
public static <T> Collection<T> findAll(Collection<T> coll, Checker<T> chk) {
    LinkedList<T> l = new LinkedList<T>();
    for (T obj : coll) {
         if (chk.check(obj))
             l.add(obj);
    }
    return l;
}
票数 0
EN

Stack Overflow用户

发布于 2018-03-06 11:17:25

尝试公共收集API:

代码语言:javascript
复制
List<Cat> bigList = ....; // master list

Collection<Cat> smallList = CollectionUtils.select(bigList, new Predicate() {
    public boolean evaluate(Object o) {
        Cat c = (Cat)o;
        return c.getFavoriteFood().equals("Wiskas") 
            && c.getWhateverElse().equals(Something);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003580

复制
相关文章

相似问题

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