я должен сравнить 2 Map
ключей, если ключи равны на основе map2
значения 'Y'
или 'N'
, я должен удалить эту запись из map1
. Я делаю это ниже, но получаю ConcurrentModificationException
. Не могли бы вы рассказать мне, почему?эффективного удаление записи Hashmap
HashMap<String,String> map1 = new HashMap<String,String>();
map1.put("test", "1");
map1.put("test2", "2");
HashMap map2 = new HashMap();
map2.put("test", "Y");
map2.put("test2", "N");
for (Map.Entry<String, String> me : map1.entrySet()) { // assuming your map is Map<String, String>
if (map2.containsKey(me.getKey())) {
if (map2.get(me.getKey()).equals("Y")) {
map1.remove(me.getKey());
}
}
}
System.out.println("Found Duplicate -> " + map1);
Вы пробовали? '.remove ()' должен делать .. –
Действительно? Сначала проверьте таблицу. Получите результаты типа, где либо флаг равен Y. Затем удалите эти типы с карты. Скажите, пожалуйста, это домашняя работа, а не ваша дневная работа. –
Что вы спрашиваете? Как удалить что-то из хэш-карты? Или как закодировать таблицу? Или что-то другое? Пожалуйста, будьте более конкретными. – jazzbassrob