2010-09-24 71 views
1

我正在用java编写一些东西,它会尝试“自动完成”用户输入的内容。我已经在iPhone应用上使用NSPredicate来执行此操作。这非常简单,并且运作良好。我希望在java中有类似的东西,但没有太多的运气发现它。是否有与NSPredicate相当的Java?

如果在java中不存在这样的事情,有没有人对最佳方法有任何建议?我正在考虑做一些事情,比如让一个Map的关键字是“A”,“B”,“C”......并且该值是一个以相应字母开头的排序数据列表,以便获得更容易管理的大小列表,然后迭代该列表以查找匹配,因为每个字母都是键入的。

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

感谢

+0

您是否在NSPredicate for JAVA上找到任何等效库?我现在碰到同一个问题了! – Strider007 2013-04-24 15:03:16

回答

1

您没有提供足够的信息。是你自动完成的列表(henseforth称为“目标列表”,一个静态值列表?如果是,请查看String.startsWith(),也可以使用比较器界面来搜索列表。)

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

+0

它是从数据库表中检索的列表,但我希望这样做速度很快,所以我想要以避免访问数据库并将所有内容保存在内存中,表格相当静态,每天只更新一次,所以我会在某个计划时间每天重新加载一次目标列表。有没有办法使用String.startsWith或比较器接口,而不必遍历整个列表? – ViniVidiVici 2010-09-25 00:53:17

相关问题