【发布时间】:2017-02-17 23:39:14
【问题描述】:
我有一个像这样的 Java 地图,
private HashMap<String, Object[][]> theMap;
其中键是一个字符串,而条目将是类似的东西,
theMap = new HashMap<>();
Object[][] theData = {
{Boolean.FALSE, "Text"}
};
theMap.put("Key1", theData);
我想检查地图中的某个条目是否等同于另一个对象。目前我正在这样做,
Object[][] tempData = {
{Boolean.FALSE, "Text"}
};
for(Object key: entries.keySet()) {
if(entries.get(key).equals(tempData)) {
entries.remove(key);
}
}
它不工作。
我更喜欢用一个对象而不是另一个地图进行比较。我想知道我在这里的比较做错了什么?
【问题讨论】:
-
这里的问题基本上是比较两个二维数组,你可以这样:Arrays.deepEquals(array1, array2);
-
对于 for 循环使用值而不是键。(for(Object value:entries.values()) 使代码更清晰
-
顺便说一句,因为你正在删除条目,也许你应该使用迭代器。
标签: java dictionary