用于添加到哈希映射中的列表的快捷方式
2022-08-31 12:44:43
我经常需要获取对象列表,并根据对象中包含的值将它们分组到Map中。例如。获取用户列表并按国家/地区分组。
我的代码通常如下所示:
Map<String, List<User>> usersByCountry = new HashMap<String, List<User>>();
for(User user : listOfUsers) {
if(usersByCountry.containsKey(user.getCountry())) {
//Add to existing list
usersByCountry.get(user.getCountry()).add(user);
} else {
//Create new list
List<User> users = new ArrayList<User>(1);
users.add(user);
usersByCountry.put(user.getCountry(), users);
}
}
然而,我不禁认为这是尴尬的,一些大师有更好的方法。到目前为止,我能看到的最接近的是Google Collections的MultiMap。
是否有任何标准方法?
谢谢!