자바/컬렉션 프레임워크

(10) HashMap과 Hashtable

백_곰 2022. 2. 3. 14:41

1. HashMap과 Hashtable의 관계

- 이 둘의 관계는 ArrayList와 Vector와의 관계가 같아서 새로운 버전인 HashMap을 사용할 것을 권장한다.

 

 

 

 

2. HashMap 개념

- Map의 특징상 키와 값을 묶어서 하나의 entry(데이터)로 저장하는 특징을 가진다.

 

- 또한 해싱을 사용하기 때문에 많은 양의 entry를 검색하는데 있어서 뛰어난 성능을 가진다.

 

- HashMap은 Entry라는 내부 클래스를 정의하고, 다시 Entry타입의 배열을 선언한다.

( 여기서 Entry 내부 클래스를 정의하는 이유는 key와 value는 연관있는 entry로 보기 때문에 각각의

배열보다는 하나의 클래스로 정의해서 하나의 배열로 다루는 것이 데이터의 integrity 측면에서 더

바람직하기 때문이다. ) - 아래의 그림 참고

 

- HashMap에 대한 상세한 메서드들은 자바의 정석 645p를 참고하자.

 

 

 

 

3. HashMap을 이해하기 위한 예제(1)

: 입력된 id와 password가 저장된 HashMap에 있는 entry와 같은지 확인하는 예제이다.

 

 

 

 

 

4. HashMap을 이해하기 위한 예제(2)

: 입력된 이름과 성적을 iterator()로 읽어 들여 출력해보는 예제이다.

 

( 중복은 허용되지 않기 때문에, 'lee'의 값은 마지막에 저장된 것이 들어가게 된다. )

( Map은 키와 값으로 구성되어 있기 때문에 바로 Collections의 메서드를 사용할 수 없으므로, map.values()를

사용해서 Collection으로 변환해서 사용해야 한다. )

 

 

 

 

5. HashMap을 이해하기 위한 예제(3)

: HashMap을 이용해서 연락처를 만들어보는 예제이다.

 

( HashMap은 데이터와 키 둘 다 Object 타입이기 때문에, 또 다시 HashMap을 만들 수 있다. )

 

 

 

 

6. HashMap을 이해하기 위한 예제(4)

: HashMap을 이용해서 데이터 갯수만큼 '#'을 출력하는 예제이다.