☕Java/Java 기본
JCF(Java Collection Framework) 정리
캔
2021. 12. 28. 07:45

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) 트리로 만들어 사용. 오름차순으로.