如何将 Hashtable 值设置为数组?

How can I set Hashtable value to be array?

是否可以在 Java 中创建一个 Hashtable,其中键是整数,值是整数数组。我试过下面的代码,但它不起作用。有谁知道如何制作这样的数据结构?

int[] a = {0, 0, 0};
// does not work!!!!
Hashtable<int, int[]> entry = new Hashtable<NodeT, a>;
  1. 不要使用 Hashtable。使用 HashMapHashMap 性能更高,Hashtable 自 Java 2.
  2. 以来已基本弃用
  3. 您不能使用 int 作为键,它必须是 Object,在本例中是 autoboxed Integer,因此请使用:

    Map<Integer, int[]> = new HashMap<>(); 
    

几件事:

1) 请不要使用Hashtable,而是使用HashMapHashtable 是旧的同步版本,人们不再使用它了。

使用Hashtable时请参考this优秀答案。

2) 请针对接口进行编码,除非您有充分的理由不这样做(因此您的 entry 应该是 Map 类型)。这使您可以轻松地将底层实现更改为不同类型的地图。

3) 请阅读official Java tutorial它解释了如何使用地图界面,基本上它应该或多或少是这样的:

Map<Integer, int[]> entry = new HashMap<>();

或者如果您使用的 Java 早于 7 Map<Integer, int[]> entry = new HashMap<Integer, int[]>();,因为 the diamond operator 是在 Java7 中引入的。另请注意,在 <> 的两边都需要相同的值。为什么要在右边写 <NodeT, a>?我收集 a 是尝试用 a 初始化它,但我不明白 NodeT.

您必须使用 Integer 而不是 int,因为 Java 中的泛型不接受原始类型。 int[] 工作正常,因为这是 Java.

中的一个对象

之后您需要将您的条目放入地图中。