본문 바로가기
☕Java/Java 기본

JCF(Java Collection Framework) 정리

by 캔 2021. 12. 28.

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