컬렉션 프레임워크란
자바에서 데이터를 편리하게 다룰 수 있도록 만들어진 인터페이스 및 구현체 클래스들의 집합을 의미한다.
핵심 인터페이스로는 List, Set, Map이 있다.
Map 인터페이스는 Collection 인터페이스를 상속하지 않아서 상속 계층에는 속하지 않지만
이 들을 통틀어 컬렉션 프레임워크라고 불린다.
List 인터페이스
순서가 있으므로 인덱스를 통한 접근이 가능
중복 데이터 가능
주요 메서드: add, set, get, remove 등
ArrayList 클래스 (List 구현체)
가변 배열 기반
(맨 뒤 인덱스를 제외) 삽입, 삭제를 할 때 배열 이동이 일어나므로 LinkedList 사용을 고려해볼 수 있음
LinkedList 클래스 (List 구현체)
메모리에 불연속적으로 저장된 데이터를 연결시킨 자료구조
링크로 연결되어 있어서 ArrayList에 비해 중간에 요소의 삽입, 삭제가 더 빠름
각 노드(요소)는 데이터 + 다음 노드의 참조값을 가지고 있음
맨 마지막 노드는 다음 노드가 없으므로 참조값은 null
연속된 메모리 공간이 아니므로 반복자(Iterator)를 통해 접근
Set 인터페이스
중복 데이터 불가능
순서가 없으므로 인덱스를 통한 접근 불가능
TreeSet 클래스 (Set 구현체)
이진탐색트리 사용, 정렬되어 있음
HashSet 클래스 (Set 구현체)
해시테이블 사용(내부적으로 HashMap 사용)
Map 인터페이스
키, 값 쌍으로 이루어짐
키는 중복 불가
주요 메서드: put(K, V), get(K), keySet, entrySet
중복된 키를 가진 값을 저장할 경우 기존의 값을 덮어 씀
HashMap 클래스 (Map 구현체)
해시테이블 사용(배열 + 연결리스트)
TreeMap 클래스 (Map 구현체)
이진탐색트리 사용
키를 기준으로 정렬되어 있음
'Java' 카테고리의 다른 글
자바 - 내부 클래스(Inner class) (0) | 2022.08.10 |
---|---|
자바(Java) - 예외(Exception) (0) | 2022.08.05 |
[Java] .equals("")와 .isEmpty()의 차이 (0) | 2022.08.01 |
[Java] 자바 쓰레드 동기화(Synchronize) (0) | 2022.08.01 |
[Java] String, StringBuilder, StringBuffer의 차이 (0) | 2022.08.01 |