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。我嘗試運氣不多(新番荔枝)? –