List
ArrayList - 배열을 개선한 것. 배열과 다르게 가변 크기. Random Access로 검색에 유리. 검색 시 O(1), 삽입, 삭제 시 배열 크기를 늘리고 요소들을 이동시켜야 하므로 O(n). 최대 인덱스 초과 시 배열 크기 50% 증가.
LinkedList - 각 자료들이 앞 자료와 뒷 자료의 주소를 갖고 있어 Sequential Access. 삽입이나 삭제에 유리. 검색 시 O(1)~O(n). 삽입, 삭제 시 O(1).
Vector - 동기화 지원. 한 번에 하나의 스레드만 접근. -> Thread-safe. 최대 인덱스 초과 시 배열 크기 100% 증가.
Map
HashMap - 키 값을 해시 테이블로 만들어서 인덱스로 사용. 순서 보장 X.
LinkedHashMap - HashMap을 LinkedList 형태로 만들어 사용. 입력한 순서대로.
TreeMap - Map을 이진트리(Red Black) 트리로 만들어 사용. 오름차순으로.
Set
HashSet - 값들을 중복되지 않게 만들고 해시 테이블로 만들어서 인덱스로 사용. 순서 보장 X.
LinkedHashSet - HashSet을 LinkedList 형태로 만들어 사용. 입력한 순서대로.
TreeSet - Set을 이진트리(Red Black) 트리로 만들어 사용. 오름차순으로.
'☕Java > Java 기본' 카테고리의 다른 글
String, StringBuffer, StringBuilder 비교 (0) | 2022.07.24 |
---|---|
SOLID 원칙 (0) | 2022.06.26 |
자바 접근 제한자(Access Modifier) 총정리 (0) | 2021.12.28 |
[20210528] AWT GUI Programming 2일차 (0) | 2021.05.28 |
[20210527] AWT 요소를 이용한 GUI 프로그래밍 (0) | 2021.05.27 |