반응형
어떤 id의 객체 remove시에
hashSet 은 iterator로 찾아서 해당 id와 객체의 id가 같은지 비교 후에 제거 하고
hashMap은 해당 id를 포함하는지 봐서 포함하면 그 id를 바로 삭제한다.
(contains 사용)
if(map.contains(id))
map.remove(id);
이런식.
차이가 존재 하는 이유는 hashSet은 인자로 하나만 들어간다.
즉 id와 Member객체가 같이 들어가는 것이 아니고 Member만 들어가므로
Member를 꺼내서 그 아이디를 비교해서 맞으면 Member를 삭제하는 식인데
Hashmap은 id와 그 id의 해당 Member도 같이 들어가므로 id를 알면 그 id를 삭제해 버리면 Member도 삭제됨.
HashMap 순회
HashMap은 순회할 때 key 또는 value 둘중에 하나를 정해서 순회해야 하므로
keySet()은 해쉬맵의 모든 키 값들의 셋임.
Iterator<Integer> ir = hashmap.keySet().iterator();
반응형