관리 메뉴

KorSA

JAVA Collection의 thread-safe 비교 본문

Knowledge Lecture/JAVA

JAVA Collection의 thread-safe 비교

Praiv. 2021. 12. 16. 17:39
320x100

JAVA Collection 패키지는 데이터를 더 효율적으로 다루고자 도입된 클래스들의 모음이다.

 

패키지 안에는 비슷한 기능을 하는 클래스들이 있는데

이들의 큰 차이점은 내부적으로 thread-safe하게 구현되어 있느냐 아니냐의 차이이다.

 

아래 표는 Java Collection 패키지 내 클래스들의 기능 및 thread-safe 여부를 비교한다.

 

Collection 특징 구현 클래스 내부 thread-safe(동기화) 유무
List 1) 순서를 유지하는 데이터 집합.

2) 중복을 허용함.
Vector (Java 초기 버전) O
ArrayList (Java 새로운 버전) X
Set 1) 순서를 유지하지 않는 데이터의 집합.

2) 집합 연산 (합집합, 교집합, 차집합 등)에 사용
HashSet (Java 새로운 버전) X
Map 1) 키(key)와 값(value)의 쌍(pair)로 이루어진 데이터의 집합.

2) 순서 유지 X, 키 중복 허용 X, 값 중복 허용 O
HashTable (Java 초기 버전) O
HashMap (Java 새로운 버전) X

 

추가적으로 몇몇 구현 클래스들의 특징을 살펴본다.

 

1. ArrayList는 이름에 나와 있듯이 내부 구현이 배열로 되어있기 때문에 배열 연산에 유리한 경우에 사용한다.

 

2. LinkedList는 내부 구현이 리스트로 되어 있기 때문에 리스트 연산에 유리한 경우에 사용한다.

 

3. HashMap은 Hashing기법으로 데이터를 저장하기 때문에 상대적인 데이터 검색 속도가 빠르며 키가 중복될 경우 최근 값을 덮어쓴다.

 

4. TreeMap은 내부 구현이 이진 탐색 트리로 되어 있다.

 

5. LinkedHashMap은 Map에서 순서 보장이 필요한 경우에 사용된다.

 

 

 

728x90
728x90

'Knowledge Lecture > JAVA' 카테고리의 다른 글

JAVA 주요 패키지 및 고려 사항  (0) 2021.12.21
Comments