0
我一直在尝试构建一个功能,使我能够过滤Java集合中的数据。最终目标是有以下几点。如何在Java集合上做Groupby,Sum,Avg,Min,Max?
SomeBuilder(Collections)
.groupby("Key")
.filter("Key","Value")
.sum()
.getResult() ;
该功能大部分类似于sql的世界,但不完全。我的问题是如何过滤像List<HashMap<String,Object>
这样的集合?
如何将groupby逻辑应用于此类集合?
显示过滤这种集合的代码片段将有很大帮助。如果番石榴能做到这一点,请举个例子。
编辑: - 我已经添加了这个问题的答案,但请建议更好的方法来做到这一点。希望这可以帮助他人。对于Sum,Avg,Count会随着我的项目进行更新。
'groupBy == filter'?为什么你有这样的数据结构'List'?为什么不是'Map '或'MultiMap'。 Map是“kind-of”groupby的实现(group by the key),不是吗? –
Kent
看看Java 8 Stream API及其收集器。来自番石榴的FluentIterable也可以做一些这些事情。 –
由于遗留原因,我坚持使用数据结构和Java版本1.6。如果不使用行映射器,Jdbc会以这种格式向我们提供数据。还有其他方法,但许多工程师已经使用这种数据结构,然后对其进行了大量操作。我想插入一个后者可以调整性能的通用机制。我可以将List更改为番石榴的multimap。我尝试运气不多(新番荔枝)? –