【发布时间】:2012-06-24 02:53:47
【问题描述】:
在过滤类中,我决定了;出于功能目的,首先从表中获取所有数据,然后使用类本身过滤此结果。我有一个代表表中所有数据的对象列表;我想知道过滤这些结果以将它们添加到 jTable 中的最快或更有效的方法是什么。
我正在寻找它来模仿 SQL 中的“Like”指令,并使用 Java 编程。
【问题讨论】:
标签: java list search object filtering
在过滤类中,我决定了;出于功能目的,首先从表中获取所有数据,然后使用类本身过滤此结果。我有一个代表表中所有数据的对象列表;我想知道过滤这些结果以将它们添加到 jTable 中的最快或更有效的方法是什么。
我正在寻找它来模仿 SQL 中的“Like”指令,并使用 Java 编程。
【问题讨论】:
标签: java list search object filtering
DBMS 可以使用索引来加快过滤和排序。主要的 DBMS 肯定拥有成熟和彻底开发的算法。因此在 SQL 中进行过滤和排序效率更高。
另一方面,如果您打算缩小搜索结果的范围,那么通过 Java 集合 API 对 DB 和后续的进行第一次迭代(或多次迭代)似乎是合理的。但是您应该以某种方式跟踪您的基本结果集(通过 SQL 获取)是否仍然相关。
无论如何,通过 Internet 从 DB 获取 100 000 条记录只是为了选择其中的 50 条听起来并不好。
【讨论】:
SQL 在过滤方面总是比 JAVA 快。
收集您需要的数据,不多也不少。
【讨论】:
要模仿LIKE,您将必须遍历所有对象,然后在您所在的字段上,您必须使用String.match 之类的东西来查看字段是否符合过滤条件。
正如 Robin 所说,在 SQL 中执行此操作比将所有内容从数据库中提取到 Java 中并在 Java 中进行过滤更有效。
【讨论】: