반응형
자바에서는 널리 알려져 있는 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색 할 수 있도록 java.util. 패키지에 컬렉션과 관련 된 인터페이스와 클래스들을 포함시켜 놓았고 이를 컬렉션 프레임워크라고 부른다.
컬렉션 : 사전적 의미로 요소를 수집해서 저장하는 것을 말하며 자바 컬렉션은 객체를 수집해서 저장하는 역할을 한다.
프레임워크 : 사용 방법을 미리 정해 놓은 라이브러리를 말한다.
인터페이스 분류 | 특징 | 구현 클래스 | |
Collection | List | - 순서를 유지하고 저장 - 중복 저장 가능 |
ArrayList, Vector, LinkedList |
Set | - 순서를 유지하지 않고 저장 - 중복 저장 안됨 |
HashSet, TreeSet | |
Map | - 키와 값의 쌍으로 저장 | HashMap, Hashtable, TreeMap, Properties |
List 컬렉션
배열과 유사한 형태로 사용된다.
- ArrayList
- 추가하는 객체를 인덱스로 관리하고 저장 용량을 초과한 객체들이 들어오면 자동으로 저장용량이 늘어난다.
- 가운데 값이 지워지면 뒤에 있는 데이터들을 지워진 인덱스를 기준으로 하나씩 당겨 빈 공간이 없도록 한다.
- Vector
- ArrayList와 동일한 구조를 가지며 동기화 메서드로 구성되어 있어 이를 스레드 안전하다.
- LinkedList
- ArrayList와 사용법은 같지만 내부 구조는 완전 다른데 인접 참조를 링크해서 체인처럼 관리한다.
Set 컬렉션
중복을 허용하지 않고 인덱스로 관리하지 않는다.
Map 컬렉션
키와 값으로 구성된 Entry 객체를 저장하는 구조이다.
- HashMMap
- 가장 대표적인 Map 인터페이스를 구현한 컬렉션이다.
- Hashtable
- HashMap과 동일한 구조로 이루어져 있다.
- 차이점은 Hashtable은 동기화된 메서드로 구성되어 있기 때문에 멀티 스레드가 동시에 이 메서드들을 실행 할 수 없어 스레드 안전하다.
- Properties
- Properties는 Hashtable의 하위 클래스이다.
- 차이점은 키와 값을 String 타입으로 제한한 컬렉션이다.
검색 기능을 강화시킨 컬렉션
- 이진 트리 구조
- TreeSet
- TreeMap
- Comparable과 Comparator
LIFO와 FIFO 컬렉션
LIFO : 후입 선출 - 스택
FIFO : 선입 선출 - 큐
동기화된 컬렉션
- synchronizedList
- synchronizedMap
- synchronizedSet
병렬 처리를 위한 컬렉션
- java.util.conccurrent - ConcurrentHashMap, ConcurrentLinkedQueue
- 부분 잠금 기능
반응형
'개발(합니다) > Java&Spring' 카테고리의 다른 글
[java-기초-17] IO 기반 입출력 (0) | 2021.03.10 |
---|---|
[java-기초-16] 스트림과 병렬 처리 (0) | 2021.02.24 |
[java-기초-14] 람다식 (0) | 2021.02.14 |
[java-기초-13] 제네릭 (0) | 2021.02.13 |
[java-기초-12] 멀티 스레드 (5) | 2021.01.25 |