나의개발일지
컬렉션(Map, Queue, Deque) 본문
728x90
Map 인터페이스
<Map 계열 주요 메서드>
// 맵에 지정된 키와 값의 매핑을 추가
put(K key, V value)
//지정된 요소 반환
get(Object key);
// 주어진 키에 해당하는 매핑을 제거
remoave(Object key);
//맵이 지정된 키를 포함하고 있는지 여부를 반환
containsKey(Object key)
// 맵에 있는 모든 키-값 쌍을 포함하는 Set을 반환
entrySet();
// 맵에 있는 모든 값들을 포함하는 Collection을 반환합니다.
values()
맵의 키를 포함하는 Set을 반환합니다.
keySet()
1. HashMap
- 삽입순서나, 특정 순서를 보당하지 않는다
- 평균적으로 상당히 빠른 검색
- 키와 값에 null을 허용
2. LinkedHashMap
- 삽입 순서를 보장한다. => 순회 가능
- Hash맵보다 살짝 느림
- null 허용
3. TreeMap
- 자연순서 또는 Comparator에 의한 정렬
- O(log n)의 시간복잡도
- null키 미허용 , 값은 허
Queue 인터페이스
<Queue 계열 주요 메서드>
//추가, 공간 없을 시 error
add(E element);
//추가, 공간 없을 시 false
offer(E element);
// 큐의 맨 앞에 있는 요소를 제거하고 반환, 큐가 비어있을 경우 error
remove();
//큐의 맨 앞에 있는 요소를 제거하고 반환, 큐가 비어있을 경우 null
poll();
//큐의 맨 앞에 있는 요소를 반환, 큐가 비어있을 경우 error
element();
// 큐의 맨 앞에 있는 요소를 반환, 큐가 비어있을 경우 null
peek();
1. LinkedList
- 큐 구현을 위해 활용 가능
- 무작위 접근 미지원
- 삽입 및 삭제 효율적
2.PriorityQueue
- 우선순위 큐를 구현한 클래스
- 삽입, 삭제 효율적
- 무작이 접근 미지원
Deque 인터페이스
<deque 계열 주요 메서드>
//추가
addFirst(E element);
addLast(E element);
//추가, 공간 부족시 false
offerFirst(E element);
offerLast(E element);
// 덱의 요소 제거
removeFirst()
removeLast()
// 덱의 요소 제거, 덱이 비었으면 null 반환
pollFirst()
pollLast
// 요소반환
getFirst();
getLast();
// 덱의 요소 반환 , 덱이 비었으면 null
peekFirst()
peekLast()
1. ArrayDeque
- Resizable Array 구현: ArrayDeque는 내부적으로 동적으로 크기가 조정되는 배열을 사용하며, 배열의 크기가 필요에 따라 자동으로 조절
- FIFO 및 LIFO 연산: 큐(Queue)와 덱(Deque)의 모든 연산을 지원합니다. 따라서 선입선출(FIFO)과 후입선출(LIFO) 모두 가능
- Null 요소 허용: ArrayDeque는 null 값을 요소로 허용
- 비동기 처리 지원: ArrayDeque는 스레드 안전하지 않지만, Java 6부터는 ConcurrentLinkedDeque 등의 동기화된 대안도 제공
- Capacity 정책: 크기가 정해지지 않은 상태에서 요소를 추가하면, 초기 크기로 16이 할당되며 이후에는 필요에 따라 두 배씩 늘어난다.
728x90
반응형
'언어 > Java' 카테고리의 다른 글
컬렉션(List, Set) (1) | 2024.01.29 |
---|---|
다형성 (0) | 2024.01.28 |
오버로딩/오버라이딩 (0) | 2024.01.25 |
상속 (0) | 2024.01.23 |
변수 (0) | 2024.01.21 |