java - Java 中的谓词搜索

标签 java search arrays rules predicates

不太确定如何表达这个问题。 我想知道是否有一种方法可以检查自定义 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 CollectionsGoogle 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/

相关文章:

php - 分别提交发票数量记录和数量发票

java - JMS 消息传递实现

java - getClassLoader().getResourceAsStream 方法对于扩展名为 ".LIB"的文件返回 null

java - 如何从输入文件中提取十进制数?

search - Elastic Search 和 Google Search Appliance 页面排名之间的区别

algorithm - 如何设计近似路径解?

linq - 如何在Entity Framework中查询整数列以“开始于”?

使用二分搜索检查排序的非顺序数组是否有重复项?

java - 从 JSP 页面中删除 Java 代码

c - 为什么这会给我一个段错误?