如何将 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
,而是使用HashMap
。 Hashtable
是旧的同步版本,人们不再使用它了。
使用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.
中的一个对象
之后您需要将您的条目放入地图中。
是否可以在 Java 中创建一个 Hashtable
,其中键是整数,值是整数数组。我试过下面的代码,但它不起作用。有谁知道如何制作这样的数据结构?
int[] a = {0, 0, 0};
// does not work!!!!
Hashtable<int, int[]> entry = new Hashtable<NodeT, a>;
几件事:
1) 请不要使用Hashtable
,而是使用HashMap
。 Hashtable
是旧的同步版本,人们不再使用它了。
使用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.
之后您需要将您的条目放入地图中。