【问题标题】:Is there a java equivalent to NSPredicate?是否有与 NSPredicate 等效的 java?
【发布时间】:2011-04-16 23:15:18
【问题描述】:

我正在用 java 编写一些东西,它会尝试“自动完成”用户输入的内容。我在 iPhone 应用程序上使用了 NSPredicate 来做到这一点。这很容易而且效果很好。我希望在java中有类似的东西,但没有太多运气找到它。

如果在 java 中不存在执行此操作的内容,是否有人对最佳方法有任何建议?我正在考虑做一些事情,比如有一个 Map ,键是“A”,“B”,“C”,......并且值是一个以相应字母开头的排序数据列表,以便得到更易于管理的大小列表,然后在键入每个字母时迭代该列表以查找匹配项。

任何其他建议将不胜感激。

谢谢

【问题讨论】:

  • 您是否在 NSPredicate for JAVA 上找到任何等效库?我现在遇到了同样的问题!

标签: java nspredicate


【解决方案1】:

您没有提供足够的信息。您正在自动完成的列表(以下称为“目标列表”)是静态值列表吗?如果是,请查看 String.startsWith() 以及用于搜索列表的 Comparator 接口。

如果目标列表是查询的结果,则构造查询以使用部分匹配(在 oracle 中,您将有一个 where 子句“like 'xxx%'” xxx 是部分值,% 是 oracle “匹配任何东西”的标记)。

【讨论】:

  • 这是一个从数据库表中检索到的列表,但我希望这个速度很快,所以我想避免访问数据库并将所有内容保存在内存中。该表是相当静态的,每天只更新一次,所以我会在某个预定时间每天重新加载目标列表一次。有没有办法使用 String.startsWith 或比较器接口而不必遍历整个列表?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-23
  • 2013-06-07
  • 2010-12-19
  • 2012-03-15
相关资源
最近更新 更多