我一直在嘗試通過翻譯後的值來對分面進行分組,但我總是得到的只是列表中最後一個對象(沒有數據集)。這是我試過的:如何通過Java中的某個字段對某些對象進行分組?
HashMap<String, List<Facet>> map = new HashMap<>();
for (Facet facet : getFacets()) {
map.put(facet.getTranslatedValue(), new ArrayList<com.schneider.gss.model.Facet>());
map.get(facet.getTranslatedValue()).add(facet);
}
你能提出什麼建議嗎?
聽起來你想使用MultiMap – Mik378 2014-09-22 13:31:15
MulltiMap是你想要的方式。發生這種情況的原因是,您每次添加時都要替換ArrayList。爲了解決你的實現,你需要檢查是否已經有一個ArrayList的那個鍵。如果有的話,將Facet添加到列表中(如果沒有),創建ArrayList並像您當前正在做的那樣添加Facet – Michael 2014-09-22 13:34:18