【发布时间】:2012-07-20 15:00:09
【问题描述】:
我有一个 hashmap 初始化如下:
Hashmap<String[][], Boolean> tests = new Hashmap<String [][], Boolean>();
我想在不初始化密钥的情况下插入测试:
tests.put({{"a"}, {"a"}}, true);
但是,Java 似乎不允许我这样做。如果我这样做,它会起作用:
String[][] hi = {{"a"}, {"a"}};
tests.put(hi, true);
有什么办法可以避免后者并让前者工作吗?
谁能解释这个错误背后的原因?
谢谢
【问题讨论】:
-
感谢快速回答,我编辑了我的问题以询问此错误背后的原因,如果有人也愿意回答这个问题。
-
仅供参考,首先你不能真正使用数组作为
HashMap中的键——它将使用引用相等,而不是值相等。 -
非常感谢,我想知道为什么它不起作用:)
-
是的。最简单的解决方案通常是使用正确的
equals和hashCode实现围绕数组创建一个包装类。
标签: java arrays hash initialization hashmap