【发布时间】:2013-01-18 15:16:12
【问题描述】:
我有一个二维整数数组。我希望将它们放入 HashMap 中。但我想根据数组索引访问 HashMap 中的元素。比如:
对于 A[2][5],map.get(2,5) 返回与该键关联的值。但是如何使用一对键创建一个 hashMap 呢?或者一般来说,多个键:Map<((key1, key2,..,keyN), Value),我可以使用 get(key1,key2,...keyN) 访问元素。
编辑:发布问题 3 年后,我想再补充一点
我遇到了NxN matrix 的另一种方式。
数组索引,i 和 j 可以通过以下方式表示为单个 key:
int key = i * N + j;
//map.put(key, a[i][j]); // queue.add(key);
并且可以通过这种方式从key 检索索引:
int i = key / N;
int j = key % N;
【问题讨论】:
-
一个简单的解决方案是将一个键映射到另一个哈希图中。
-
请不要回答问题中的问题。您的编辑很有趣,因此请随时将其发布为答案。
-
@Crocode 哇!编辑中答案背后的数学是闪烁的。只是想知道它是否适用于任何两个整数 i 和 j。
-
@Crocode 如果 i 和 j 是 N 的倍数,它们会循环吗?
标签: java hash hashmap hashcode