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

我有一些复杂的对象,例如猫,它具有许多属性,例如年龄,喜爱的猫食等等。

Java集中存储了一堆猫,我需要查找所有3岁的猫,或者最喜欢猫粮的Whiskas。当然,我可以编写一个自定义方法来查找那些具有特定属性的Cat,但是这样做会麻烦许多属性。有一些通用的方法吗?

回答:

您可以编写一个采用接口实例的方法,该实例定义了一个check(Cat)方法,该方法可以通过所需的任何属性检查来实现。

更好的是,使其通用:

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;

}

当然,就像其他人说的那样,这就是为关系数据库创建的…

以上是 在集合中查找具有给定属性的所有对象 的全部内容, 来源链接: utcz.com/qa/419032.html

回到顶部