我有一个集合,一个 map 列表, map 是Map<String, String>
.我需要通过比较、逻辑等方式查询此集合,而不是在运算符中。类似于 SQL。
我将从数据库存储过程中填充列表,所以我不确定大小。但是,我想大小应该不会超过 10,000 条记录。
在发布这篇文章时,我正在查看 Apache 仿函数,我不知道他们是否会在这里提供帮助。
我正在考虑的其他方法是使用内存数据库 Derby 来实现这一点。
请让我知道任何 Java 库或任何其他执行此操作的方法。
列表中的 map 如下所示:
Map<String, String> m1 = new Map<String, String>();
m1.put("name","Mark");
m1.put("age","21");
m1.put("city","some city");
Map<String, String> m1 = new Map<String, String>();
m1.put("name","David");
m1.put("age","25");
m1.put("city","other city");
我需要查询列表以获取具有以下内容的 map :
-
name=Mark
-
name=Mark and age > 30
-
city not in "other city"
最佳答案
看看CQEngine - Collection Query Engine .
作为作者,我有偏见,但与依赖迭代和过滤的方法相比,它的性能和扩展性更好。
它提供了 java.util.Set
(IndexedCollection) 的实现,允许基于(任意复杂的)查询对象的属性来检索对象。
关于java - 查询内存中的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10804825/