我需要一种集合类型,允许多个值与多个键相关联.理想情况下,我会像Map一样使用它,但map用于给定键以产生单个值.
以下是我想如何使用它的示例:
@Test
public void multipleItems() {
Index<String, String> index = new Index<String, String>();
index.add("key1", "value1");
index.add("key2", "value2");
index.add("key1", "value3");
index.add("key2", "value4");
index.add("key1", "value5");
List<String> values = index.get("key2");
assertEquals(2, values.size());
assertEquals("value2", values.get(0));
assertEquals("value4", values.get(1));
}
Run Code Online (Sandbox Code Playgroud)
我不知道JVM中有任何实现.我自己可以实现这个,但我希望找到一个现有的实现.
建议?
解
基于下面的建议,我最终使用了番石榴(并包装它,因为我不想将其暴露给我的应用程序的其余部分,以防我找到更好的解决方案.
我使用这些设置来包含我的gradle脚本: 'com.google.guava:guava-collections:r03'
我的"包装器"类看起来像这样:
public class Indexes<K, V> {
private HashMultimap<K, V> keyToValuesMap = HashMultimap.create();
public void put(K key, V value) {
this.keyToValuesMap.put(key, value);
}
public Set<V> get(K key) {
return this.keyToValuesMap.get(key);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
271 次 |
| 最近记录: |