Java字典值类型元组

时间:2010-12-15 15:21:44

标签: java data-structures dictionary map

我想要一个包含一个键和多个值的字典(HashTable,Map,...)。

即。我想要像

这样的东西

HashTable<Key, [value1, value2]>

我如何得到这个?

6 个答案:

答案 0 :(得分:7)

我认为最简单的方法:

Map<Key, List<Value>>

如果你想要一个元组(对,3或......),你可以创建一个Pair类。

class Pair<E,F, ...> {

    public E one;
    public F two;
    ...

}

然后像这样使用Map

Map<Key, Pair<Value, Value>>

答案 1 :(得分:2)

HashTable<Key, List<Value>>怎么样?

答案 2 :(得分:1)

只是将数组存储为具有定义长度的值?

答案 3 :(得分:1)

为您的值创建一个新的(非公共)类或使用多个映射(可​​能更慢)。

答案 4 :(得分:1)

Google的Guava提供了一个执行此操作的多图。 Javadoc

答案 5 :(得分:0)

Java语言中没有元组这样的东西,所以你可以使用一些提议:

  • 存储数组
  • 存储列表,设置
  • 存储包含两个值的自定义对象

你也可以做一个相当普遍的对象:配对。

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; }
}