【问题标题】:Java Dictionary value of type tuple元组类型的 Java 字典值
【发布时间】:2010-12-15 15:21:43
【问题描述】:

我想要一个有一个键和多个值的字典(HashTable、Map、...)。

即我想要类似的东西

HashTable<Key, [value1, value2]>

我如何得到这个?

【问题讨论】:

    标签: java data-structures dictionary map


    【解决方案1】:

    我认为最简单的方法:

    Map<Key, List<Value>>
    

    如果您希望只有一个元组(pair、3 或 ...),您可以创建一个 Pair 类。

    class Pair<E,F, ...> {
    
        public E one;
        public F two;
        ...
    
    }
    

    然后像这样使用Map

    Map<Key, Pair<Value, Value>>
    

    【讨论】:

    • 好的,我认为还有另一种解决方案。由于我是 Java 新手,所以我认为可能有一个支持这一点的数据结构。
    • @pitik,我不相信有支持这一点的本机数据结构。我从来没有用过。
    • 我建议创建一个类,在泛型类型中使用泛型类型会导致一些问题。
    【解决方案2】:

    HashTable&lt;Key, List&lt;Value&gt;&gt;怎么样?

    【讨论】:

      【解决方案3】:

      只存储一个数组作为定义长度的值?

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

          • 谢谢,比编写自己的课程更方便。正是我想要的。
          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-02-09
            • 1970-01-01
            • 2022-06-22
            • 2023-01-18
            • 2021-05-20
            • 2015-08-13
            • 1970-01-01
            相关资源
            最近更新 更多