您无需将ArrayList重新添加回您的Map。如果ArrayList已经存在,则只需向其中添加值即可。
改进的实现可能看起来像:
Map<String, Collection<String>> map = new HashMap<String, Collection<String>>();
在处理每一行时:
String user = user field from lineString value = value field from lineCollection<String> values = map.get(user);if (values==null) { values = new ArrayList<String>(); map.put(user, values)}values.add(value);后续行动(2014 年 4月) -我在2009年对Google Guava的了解有限时就写了原始答案。考虑到Google
Guava的所有功能,我现在建议使用它
Multimap而不是重新发明它。
Multimap<String, String> values = HashMultimap.create();values.put("user1", "value1");values.put("user2", "value2");values.put("user3", "value3");values.put("user1", "value4");System.out.println(values.get("user1"));System.out.println(values.get("user2"));System.out.println(values.get("user3"));输出:
[value4, value1][value2][value3]



