PostIT

[Java]HashSet과 HashMap 본문

Java/Data Structure

[Java]HashSet과 HashMap

shun10114 2016. 11. 22. 10:33

# HashSet HashMap에 대한 정리 


HashMap HashSet 차이는 빈번히 올라오는 질문이다. HashMap HashSet collection framework 속하여 객체들의 모음(collection) 이용해 작업 하는 것을 도와준다. Collection framework 인터페이스와 구현된 클래스를 가지고 있다. 기본적으로 collection framework Set, List, Queue 인터페이스로 나눠진다. 각각의 인터페이스는 속성을 갖게 되는데 예로 들어, Set 객체를 받되 중복되는 값은 허용하지 않으며 List 인덱싱을 하여 중복을 허용하고, queue FCFS 알고리즘을 기반으로 한다.


HashMap HashSet 무엇인지 살펴보고 나서, 둘의 차이점에 대해 살펴보겠다.



  • HashSet이란? (Java에서)

HashSet Set 인터페이스를 구현한 것으로 들어오는 객체 , 중복된 객체를 허용하지 않는다. HashSet 들어가는 객체들은 반드시 equals() hashCode() 메소드를 구현해야 하는데, 메소드들을 가지고 HashSet 들어갈 중복된 객체가 있는지 여부를 체크하게 된다.

public boolean add(Object o) 메소드는 set 데이터를 집어넣을 사용되는데, 성공적으로 추가되면 true, 중복된 객체가 들어오면 false 리턴한다.

 

  • HashMap이란?

HashMap Map 인터페이스를 구현한 것으로 key-value 형식의 데이터를 저장한다. 역시나 중복된 key값은 허용되지 않는다. 기본적으로 Map 인터페이스는 HashMap TreeMap, 두가지의 기구현된 클래스가 있다. 둘의 주요 차이점은 TreeMap 집어 넣은 순서를 유지하는데 비해 HashMap 유지하지 않는다. HashMap null value null key value 허용한다. HashMap 기본적으로 동기화(synchronized) 되지 않으나, collection framework 메소드를 제공하므로 이를 이용해서 HashMap 동기화 시켜 멀티 쓰레드 환경에서 사용할 있다.

public Object put(Object key, Object value) 메소드는 map 데이터를 저장할 사용한다.

 


- HashSet HashMap 차이 (Java에서)


HashMap
1. HashMap Map 인터페이스를 구현했다.(implement)
2. HashMap 데이터를 key-value 형식으로 저장한다.
3. put() 메소드는 데이터를 넣을 사용된다.
4. HashMap에서 hashcode 값은 key value 이용하여 생성한다.
5. HashMap unique key 이용하여 데이터에 바로 접근하기에 HashSet 비해서 빠르다.


HashSet
1. HashSet Set 인터페이스를 구현했다.(implement)
2. HashSet 객체만 저장할 있다.
3. add() 메소드를 통해 데이터를 저장한다.
4. 들어가는 객체를 이용하여 hashcode 생성하고, equal() 메소드를 이용해 hashcode 비교, 중복된 객체가 있는지 체크한다. (equal() 메소드는 중복된 객체가 있으면 true, 없으면 false 리턴한다.
5. HashMap 비해 느리다.


참조 : 

Javarevisited 블로그 번역원문 click


Comments