У меня есть карта в 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);
}
}
И он не работает.
Я предпочел бы, чтобы сравнение проводилось с объектом, а не с другой картой. Мне интересно, что я делаю неправильно с этим сравнением здесь?
В основном проблема здесь для сравнения двух 2D массивов, вы можете использовать это: Arrays.deepEquals (массив1 массив2); –
И для цикла for используйте значения вместо ключей. (Для (Object value: entries.values ()) Делает очиститель кода –
Кстати, поскольку вы удаляете записи, как вы, возможно, вы должны использовать Итератор. –