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 |