티스토리 뷰

자바 map 다중제거 Iterator

Map<Integer, Integer> map = new HashMap<>();
map.put(1, 11);
map.put(2, 22);

// 1번
for (Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator(); it.hasNext();) {
    Map.Entry<Integer, Integer> entry = it.next();
    if (entry.getKey() > 0) {
        // 제거
        it.remove();
    }
}

// 2번
map.entrySet().removeIf(e -> {
    return e.getKey() > 0;
});
// 2번 요약
map.entrySet().removeIf(e -> e.getKey() > 0);

// 3번
Iterator<Integer> it = map.keySet().iterator();
while(it.hasNext()) {
    Integer key = it.next();
    if (map.get(key) > 0) {
        it.remove();
    }
}



댓글