on
11. 기술면접 - 자바 - 컬렉션 프레임워크 (Collection Framework)
11. 기술면접 - 자바 - 컬렉션 프레임워크 (Collection Framework)
Map Collection
Set List
HashMap
Entry 의 배열로 저장되며, 배열의 index는 내부함수를 통해 계산된다
내부 hash 값에 따라서 키순서가 정해지므로 특정 규칙 없이 호출된다
key, value에 null 값을 허용한다
비동기 처리
시간복잡도 O(1) HashSet
저장 순서를 유지하지 않는 데이터의 집합
해시 알고리즘(Hash algorithm) 을 사용 하여 검색속도가 매우 빠르다
내부적으로 Hash Map 인스턴스를 이용하여 요소를 저장 한다 ArrayList
단방향 포인터 구조 로 각 데이터에 대한 인덱스를 가지고 있어 데이터 검색에 적합하다
데이터의 삽입, 삭제 시 해당 데이터 이후 모든 데이터가 복사되므로 삽입, 삭제가 빈번한 데이터에는 부적합 하다
LinkedHashMap
HashMap을 상속받으며, Linked List 로 저장된다
입력 순서대로 출력된다
비동기 처리
시간복잡도 O(n)
LinkedHashSet
저장순서를 유지 하는 HashSet LinkedList
양방향 포인터 구조 로 데이터의 삽입, 삭제 시 해당 노드의 주소지만 바꾸면 되므로 삽입, 삭제가 빈번한 데이터에 적합 하다
데이터의 검색 시 처음부터 노드를 순회하므로 검색에는 부적합 하다
스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰인다
TreeMap
내부적으로 레드-블랙 트리(Red-Black tree)로 저장된다
키값이 기본적으로 오름차순 정렬 이 출력된다
키값 에 대한 Compartor 구현으로 정렬 방법을 지정 할 수 있다
시간복잡도 O(logN) TreeSet
데이터가 정렬 된 상태로 저장되는 이진탐색 트리(BST)의 형태로 요소를 저장
이진 탐색 트리 중에 성능을 향상시킨 레드-블랙 트리(Red-Black Tree)로 구현되어 있다
Compartor 구현으로 정렬 방법을 지정
Vector
내부에서 자동으로 동기화 처리가 일어난다
성능이 좋지 않고 무거워 잘 쓰이지 않는다
ConCurrentHashMap
multiple lock
update 할 때만 동기(syncronized) 처리
key 와 value 에 null 값을 허용하지 않는다
from http://theheydaze.tistory.com/609 by ccl(A) rewrite - 2021-10-21 18:00:23