【发布时间】:2015-04-24 05:46:28
【问题描述】:
我有一个函数可以进行一些计算。它接受一个 int 数组并根据传递给它的 int 数组的内容返回一个整数。
由于我的应用程序正在执行数百个此类计算,因此我正在尝试设置一种将这些计算结果存储在哈希图中的方法,这样它就不必重新计算它最近已经进行的计算。为此,我需要使用 int 数组作为哈希图的键。
目前这是打印尺寸 2,我希望它打印尺寸 1:
LinkedHashMap hashmap = new LinkedHashMap();
int test[] = {1,2,3};
int test2[] = {1,2,3};
hashmap.put(test, 1);
hashmap.put(test2, 1);
System.out.println("Size: "+hashmap.size());
实现这一目标的最佳方法是什么?我可以创建一种方法来将数组转换为某种对数组数据进行编码的字符串,但我认为这不是最好的解决方案。
【问题讨论】:
-
您可以将
Lists 存储在哈希图中。 -
您可以使用任何对象作为哈希图的键,为了您的目的,您可以使用 List
而不是使用 int 数组 -
List或将数组包装在一个简单的类中,该类覆盖equals()/hashCode();查看Arrays类 -
你应该看看 Trove 库。它支持原始集合、映射和自定义散列策略。
-
大家对 hashset 有什么看法?