不太确定如何表达这个问题。 我想知道是否有一种方法可以检查自定义 java 类的某些部分以查看它是否符合特定条件。 比如这个
public Name(String forename, String middlename, String surname)
然后当创建该类的实例数组时,说,
Name[] applicants = new Name[4];
applicants[0] = new Name("john","bob", "rush");
applicants[1] = new Name("joe","bob", "rushden");
applicants[2] = new Name("jack","bob", "rushden");
applicants[3] = new Name("jake","bob", "rushden");
是否可以在类的实例中搜索 person with
midddlename.equals("bob") && surname.equals("rush")
我并不是真的在寻找一个解决方案是 if(surname.equals("bob")) then else
,etc
但更多的是一个允许快速搜索数组的内置 java 类。 速度非常重要。
最佳答案
没有内置支持,但是 Apache Collections和 Google Collections两者都提供对集合的谓词支持。
您可能会发现 this question及其答案很有帮助。与此相同 developer.com文章。
例如使用 Google Collection :
final Predicate<name> bobRushPredicate = new Predicate<name>() {
public boolean apply(name n) {
return "bob".equals(n.getMiddlename()) && "rush".equal(n.getSurname());
}
}
final List<name> results = Iterables.filter(applicants, bobRushPredicate));
关于java - Java 中的谓词搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2336119/