1. Hashtable, HashMap, ConcurrentHashMap
위에 나열된 클래스들은 Map 인터페이스를 구현한 콜렉션들입니다. 이 콜렉션들은 비슷한 역할을 하는것 같으면서도 다르게 구현되어 있습니다. 기본적으로 Map 인터페이스를 구축한다면 <key, value>구조를 가지게 됩니다. 하나씩 살펴봅시다.
2. Hashtable
Hashtable은 put, get과 같은 주요 메소드에 synchronized 키워드가 선언 되어 있습니다. 또한 key, value에 null을 허용하지 않습니다.
3. HashMap
HashMap은 주요 메소드에 synchronized 키워드가 없습니다. 또한 Hashtable과 다르게 key, value에 null을 입력할 수 있습니다.
4. ConcurrentHashMap
HashMap을 thread-safe 하도록 만든 클래스가 ConcurrentHashMap입니다. 하지만 HashMap과는 다르게 key, value에 null을 허용하지 않습니다. 또한 putIfAbsent라는 메소드를 가지고 있습니다.
5. Common Methods
위의 세종류의 클래스들은 put, get 메소드 외에도 기본적인 메소드들을 구현하고 있습니다. 대표적인 몇가지의 메소드들만 알아봅시다.
clear()
해당 콜렉션의 데이터를 초기화 합니다.
containsKey(key)
해당 콜렉션에 입력 받은 key를 가지고 있는지 체크합니다.
containsValue(value)
해당 콜렉션에 입력 받은 value를 가지고 있는지 체크합니다.
remove(key)
해당 콜렉션에 입력 받은 key의 데이터(key도 포함)를 제거합니다.
isEmpty()
해당 콜렉션이 비어 있는지 체크합니다.
size()
해당 콜렉션의 엔트리(Entry) 또는 세그먼트(Segment) 사이즈를 반환합니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
Java의 Collections (List, Set, Map) 이해 (0) | 2020.03.14 |
---|---|
Iterator 와 Enumeration 차이 (0) | 2020.03.14 |
Template 패턴 (0) | 2020.02.01 |
Builder 패턴 (0) | 2020.02.01 |
Adapter 패턴 (0) | 2020.02.01 |
댓글