我一直在尝试通过翻译后的值来对分面进行分组,但我总是得到的只是列表中最后一个对象(没有数据集)。这是我试过的:如何通过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