1

您好我想实现一个哈希映射,将特定日期映射到整数数组。数组的大小是 32

我试过这个,它编译:

HashMap<Date,int[]> coord_map = new HashMap<Date, int[]>();

但我不确定这是如何工作的,因为我没有给出整数数组的大小。

我也厌倦了这个:

int[] arr = new int[32];
for(int i =0; i <32; i++){
arr[i] = 0; // initialize the array to 0. 
}
HashMap<Date, arr> attraction_date = new HashMap<Date, arr>();

这给了我一个编译器错误“找不到名为 arr 的类或类型”

谢谢你

我现在有一个后续问题:

我成功地使用了一个哈希映射,它接收一个日期并将其映射到一个 int 数组。现在我想使用这个哈希图的多个实例。由于我的项目涉及主题公园数据,因此每个景点都会有一个哈希图。
那么我将如何实现哈希映射的数组列表。跟踪 20 个景点?如果有人可以向我展示一个初始化所有内容的示例设置代码,那将很有帮助。

再次感谢你,

4

2 回答 2

4

这取决于你做什么。如果问题需要你有一个正好 32 个整数的数组,那么创建一个包装类 IntArray32 并使用HashMap<Date, IntArray32>. 否则,您编写的内容将起作用,它只会允许您将任何大小的 int 数组作为值。

于 2013-03-16T22:17:29.640 回答
3

您拥有的东西很好,您不需要指定尺寸。这将起作用

Map<Date, int[]> coordMap = new HashMap<Date, int[]>();
coordMap.put(aDate, new int[]{1,2});
coordMap.put(anotherDate, new int[]{3,4,5,6});
...

所以每个值int[]可以有不同的大小。

于 2013-03-16T22:22:45.220 回答