Map> myMaps = new HashMap>(); for (DataObject item : myList) { if (!myMaps.containsKey(item.getKey())) { myMaps.put(item.getKey(), new ArrayList()); } myMaps.get(item.getKey()).add(item.getValue()); }