Java

HashSet , HashMap 순회

이무쿤 2019. 11. 3. 18:46
반응형

어떤 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();

반응형