728x90
Collections
- java.util 패키지에 포함된 자료구조 담당 프레임워크
- 여러 개의 객체를 보관할 수 있게 만들어진 클래스들의 모음
- 해당 클래스들은 Container 클래스라고 불리기도 함
자료구조 |
특징 |
리스트(List) |
- 데이터 순서 O, 데이터 중복 O - INDEX 번호가 중요 |
큐 (Queue) |
- List와 유사 - 자료구조 큐 형태 구현(선입선출) |
세트(Set) |
- 데이터 순서 X, 데이터 중복 X |
맵(Map) |
- 키(Key), 값(Value) 쌍을 가지는 구조 - 키 값으로 원하는 데이터 검색 - 데이터 순서 X, 키 중복 X, 값 중복 O |
1. 리스트 (List) 인터페이스
클래스 |
특징 |
ArrayList |
- 단방향 포인터 구조 - 순차적 접근에 빠른 성능을 가짐 |
LinkedList |
- 양방향 포인터 구조 - 빈번한 데이터 삽입, 삭제에 빠른 성능을 가짐 |
Vector |
- ArrayList와 동작 방식 같음 - 속도가 느림 - 멀티스레드에 대해서 좀 더 안전 - 잘 쓰이지 않음 |
- 인덱스 존재
- 데이터 순서 O, 데이터 중복 O
- ArrayList, LinkedList, Vector 셋 다 List interface를 구현
- List타입으로 객체 생성 가능
- ex) ArrayList<Integer> list = new ArrayList<>();
2. 세트 (Set) 인터페이스
클래스 |
특징 |
HashSet |
- 해싱 알고리즘으로 원하는 객체를 빨리 찾음 - 제일 많이 쓰임 |
TreeSet |
- SortedSet - 데이터가 추가될 때 내부적으로 위치가 정해짐 (자동으로 정렬이됨) |
- 집합을 의미
- 데이터 순서 X, 데이터 중복 X
- HashSet<값타입>
- ex) HashSet<Integer> set = new HashSet<>();
3. 맵 (Map) 인터페이스
클래스 |
특징 |
HashMap |
- 해싱 알고리즘으로 원하는 객체를 빨리 찾음 - 제일 많이 쓰임 |
TreeMap |
- SortedMap - 데이터가 추가될 때 내부적으로 위치가 정해짐 (자동으로 정렬이됨) |
- 키(Key), 값(Value) 쌍
- 키 중복 X, 값 중복 O
- 키로 원하는 데이터를 찾음
- HashMap<키 타입, 값 타입>
- ex) HashMap<String, Integer> map = new HashMap<>();
4. 큐 (Queue) 인터페이스
- 자료구조 큐의 선입선출 구조를 구현
- LinkedList 클래스가 Queue 인터페이스를 구현하기 때문에 보통 LinkedList로 객체를 선언해서 사용
- ex) Queue<Integer> queue= new LinkedList<>();
728x90
'Java' 카테고리의 다른 글
[자바] 직렬화 (Serialize) (0) | 2020.10.20 |
---|---|
[자바] hashCode() (0) | 2020.09.17 |
[자바] 자바의 실행구조 (0) | 2020.09.15 |
[자바] 인터페이스 (Interface) (0) | 2020.09.15 |
[자바] JRE, JDK (0) | 2020.09.15 |
댓글