实现一个哈希映射,它接受k = Date对象v =一个数组

时间:2013-03-16 22:13:46

标签: java arraylist hashmap

您好我想实现一个Hash映射,它将特定Date映射到一个int数组。数组的大小是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数组。 现在我想使用这个hashmap的多个实例。由于我的项目涉及主题公园数据,因此每个景点都会有一个哈希图 那么我该如何实现哈希映射的数组列表呢?要跟踪20个景点? 如果有人可以向我展示一个示例设置代码,那么初始化所有内容,这将是有帮助的。

再次感谢你,

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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[]可以有不同的大小。