在集合中查找具有给定属性的所有对象
我有一些复杂的对象,例如猫,它具有许多属性,例如年龄,喜爱的猫食等等。
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