Tôi thường cần có danh sách đối tượng và nhóm chúng thành Bản đồ dựa trên giá trị chứa trong đối tượng. Ví dụ. lấy danh sách Người dùng và nhóm theo Quốc gia.Phím tắt để thêm vào Danh sách trong HashMap
Mã của tôi cho điều này thường trông giống như:
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);
}
}
Tuy nhiên tôi không thể không nghĩ rằng đây là vụng về và một số guru có một cách tiếp cận tốt hơn. Gần nhất tôi có thể thấy cho đến nay là MultiMap from Google Collections.
Có cách tiếp cận chuẩn nào không?
Cảm ơn!
nên đó thực sự là 'Bản đồ>'? Câu trả lời tạo sự khác biệt cho những gì bạn chọn để xây dựng hoặc sử dụng. Lưu ý rằng Bộ sưu tập của Google cung cấp các sàng lọc cho các bộ sưu tập lồng nhau có nhiều loại danh sách và tập hợp khác nhau. –
seh
Chỉ cần thả Java cho .Net và LINQ. –
@Hamish: vâng, bởi vì những lo lắng của chúng ta về phụ thuộc hoàn toàn không liên quan rồi! – Carl