Java

[JAVA] 12. 자바 컬렉션(Map편)

히비스 2021. 4. 30. 18:55

Map의 개념은 다른 컬렉션보다 간단하다.

  • Map에 데이터를 넣는 put()
  • 데이터를 확인하는 get()
  • 데이터를 삭제하는 remove()

 

Map 인터페이스를 구현한 클래스들 HashMap, TreeMap, LinkedHashMap, Hashtable

기능 HashMap HashTable
키나 값에 null 저장 가능 여부 가능 불가능
여러 쓰레드 안전 여부 불가능 가능

따라서, Hashtable을 제외한 Map으로 끝나는 클래스들을 여러 쓰레드에서 동시에 접근할 땐

Map m = Collections.synchronizedMap(new HashMap(...));

와 같이 선언해서 사용해야 한다.

 

 

HashMap 클래스의 상속 관계

java.lang.Object

  ㄴ java.util.AbstractMap<K, V>

        ㄴ java.util.HashMap<K, V>

 

 

HashMap 객체에 put() 메소드로 이미 존재하는 키로 다른 값을 넣을 때

map.put("A", "1");

map.put("A", "2");

-> "A"의 값은 2로 대치됨.

 

 

HashMap에 담겨있는 값의 목록을 리턴하고 싶을 때

values() 메소드를 사용하는 것이 keySet() 메소드로 모든 키 값을 가져 온 후 처리하는 것보다 더 간편함.

이외에도, entrySet()메소드를 사용할 수도 있다.

Set<Map.Entry<String, String>> entries = map.entrySet();

 

 

 

정렬된 키의 목록을 원한다면 TreeMap을 사용하자

- 기본 정렬 순서 : 숫자 > 알파벳 대문자 > 알파벳 소문자 > 한글 (String과 같은 문자열 기준)

 

- 100~1,000건 정도의 데이터를 처리하고, 정렬할 땐 HashMap 보다는 TreeMap을 사용하는 것이 더 유리함.

 

- TreeMap은 SortedMap 인터페이스를 구현했기 때문에 정렬이 가능함.

*** 자바의 신(이상민 저)을 공부한 내용 중에 기억해야 할 개념들을 정리해 놓은 글 입니다.***

'Java' 카테고리의 다른 글

[JAVA] 14. Function Interface  (0) 2021.05.11
[JAVA] 13. 쓰레드(Thread)  (0) 2021.05.04
[JAVA] 11. 자바 컬렉션(Set과 Queue편)  (0) 2021.04.30
[JAVA] 10. 자바 컬렉션(List편)  (0) 2021.04.30
[JAVA] 9. 특별한 java.lang 패키지  (0) 2021.04.30