【发布时间】:2010-12-15 15:21:43
【问题描述】:
我想要一个有一个键和多个值的字典(HashTable、Map、...)。
即我想要类似的东西
HashTable<Key, [value1, value2]>
我如何得到这个?
【问题讨论】:
标签: java data-structures dictionary map
我想要一个有一个键和多个值的字典(HashTable、Map、...)。
即我想要类似的东西
HashTable<Key, [value1, value2]>
我如何得到这个?
【问题讨论】:
标签: java data-structures dictionary map
我认为最简单的方法:
Map<Key, List<Value>>
如果您希望只有一个元组(pair、3 或 ...),您可以创建一个 Pair 类。
class Pair<E,F, ...> {
public E one;
public F two;
...
}
然后像这样使用Map:
Map<Key, Pair<Value, Value>>
【讨论】:
HashTable<Key, List<Value>>怎么样?
【讨论】:
只存储一个数组作为定义长度的值?
【讨论】:
为您的值创建一个新的(非公共)类或使用多个映射(可能更慢)。
【讨论】:
Google 的 Guava 提供了一个多图来执行此操作。 Javadoc
【讨论】:
Java 语言中没有元组之类的东西,所以你可以使用一些建议:
您还可以制作一个相当通用的对象:Pair。
public Pair<A,B> {
public Pair(A a, B b) {
this.a = a;
this.b = b;
}
public A a() { return a; }
public B b() { return b; }
}
【讨论】: