Tôi đang cố gắng có một Multimap (dựa trên băm) với nhiều (giá trị băm) Đa giá trị cho mỗi khóa. Xem ví dụ:Multimap với HashMultiset cho các giá trị
Multimap<Object, Object> mmap = Multimaps.newMultimap(
Maps.<Object, Collection<Object>>newHashMap(),
new Supplier<Collection<Object>>() {
public Collection<Object> get() {
return HashMultiset.create();
}
});
mmap.put("1", "2");
Nhưng sau đó,
System.out.println(mmap.get("1") instanceof Multiset<?>);
//false, the returned collection is not a HashMultiset,
//but a (private) WrappedCollection
Vì vậy, có vẻ như tôi không thể truy cập MultiSet mình đã tạo? Tôi muốn có thể trả lại điều đó, như một Multiset (được bao bọc trong Multisets.unmodifiableMultiset()). Tôi không muốn sao chép nó vào một Multiset mới mỗi lần. Tôi có tùy chọn nào khác ngoài việc chuyển về Map<K, Multiset<V>>
và thêm mã của tôi vào độ phức tạp mà Multimap
có nghĩa là để loại bỏ?
Ồ, đó là những gì tôi nghi ngờ, cảm ơn anyway. Tôi không chắc chắn về tính năng yêu cầu (vì luôn có nguy cơ nhận được nó :)). PS: bạn rất bí mật ở lần! –
Tôi cũng muốn điều này. Không có cơ hội nó xảy ra trong ≳4 năm qua? –
Than ôi, không, chúng tôi đã mất niềm tin vào giải pháp cụ thể mà trước đây chúng tôi nghĩ rằng chúng tôi có thể phát hành. –