Tôi có một Multimap (như được cung cấp bởi Ổi):Một Java Multimap cho phép tra cứu nhanh chóng của chính bởi giá trị
Multimap<K, V>
mà có thể được nhìn thấy một cách logic như:
Map<K, Set<V>>
Dữ liệu trong multimap của tôi, có các khóa duy nhất và các giá trị duy nhất. tức là Không bao giờ có cùng giá trị được gán cho nhiều hơn một khóa.
Ngoài việc duy trì hai cấu trúc Bản đồ, có ai biết một lớp/api hiện có có thể cho tôi tra cứu nhanh bằng khóa hoặc giá trị không.
ví dụ:
Collection<V> get(K)
...and...
K getKeyByValue(V)
BTW, bản đồ PHẢI có thể thay đổi được, tức là dữ liệu của tôi luôn thay đổi. (Đối với Bản đồ bất biến, Guava cung cấp một ImmutableMultimap.inverse() sẽ giải quyết vấn đề này nếu Bản đồ của tôi có thể bất biến.)
Mọi trợ giúp sẽ được đánh giá cao.
P thuê kiểm tra nếu liên kết này giải quyết mục đích? http://stackoverflow.com/questions/711618/java-collection-unique-key-and-unique-value – Hirak
Bạn đã xem bản đồ BiMap của Guava chưa? Tôi nghĩ rằng đó là những gì bạn muốn ở đây ... mặc dù, nó được hỗ trợ bởi hai bản đồ (một cái gì đó bạn dường như muốn tránh). –
Cảm ơn, vâng tôi đã có một cái nhìn tại BiMap. Tuy nhiên một BiMap giống như một bản đồ cũ đơn giản, nhờ đó bạn có thể tra cứu bằng Khóa hoặc Giá trị, tuy nhiên tôi sẽ theo sau một "Bản đồ nhiều". tức là giá trị của Bản đồ là một Tập hợp hoặc Danh sách các giá trị. – Ben