最佳答案
我经常需要获取一个对象列表,并根据对象中包含的值将它们分组到一个 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 的 MultiMap。
有什么标准方法吗?
谢谢!