코딩테스트/Java 문법 정리

Deque(덱, Double-Ended Queue)

SK_MOUSE 2021. 5. 3. 14:59
반응형

Deque : Double-Ended Queue 

큐의 양쪽으로 엘리먼트의 삽입과 삭제를 수행할 수 있는 자료구조를 의미한다.

덱의 구조

 

 

1. 추가

- 앞쪽에 추가하기 : addFirst(), offerFirst()

- 마지막쪽에 추가하기 : addLast(), add(), offerLast(), offer()

Deque에 추가하기

 


2. 뽑기

- 덱의 앞쪽에서 뽑기 : removeFirst(), pollFirst(), remove(), poll()

- 덱의 마지막쪽에서 뽑기 : removeLast(), pollLast()

Deque에서 뽑기

 


3. 뽑지않고 리턴

- 덱의 앞쪽 리턴 : getFirst(), peek(), peekFirst()

- 덱의 마지막쪽 리턴 : getLast(), peekLast()

Deque에서 리턴만하기

 

 

4. 그 외

 

removeFirstOccurrence(Object o) : 덱의 앞쪽에서부터 탐색하여 입력한 Object o와 동일한 첫 엘리먼트를 제거한다. Object o 와 같은 엘리먼트가 없으면 덱에 변경이 발생하지 않는다. 

 

removeLastOccurrence(Object o) : 덱의 뒤쪽에서부터 탐색하여 입력한 Object o와 동일한 첫 엘리먼트를 제거한다. Object o 와 같은 엘리먼트가 없으면 덱에 변경이 발생하지 않는다. 

 

element() : removeFirst()와 동일

 

addAll(Collection <? extends E c) : 입력 받은 Collection의 모든 데이터를 덱의 뒤쪽에 삽입한다.

 

push() : addFirst()와 동일. 덱을 스택으로 사용할 때 쓰임

 

pop() : removeFirst()와 동일. 덱을 스택으로 사용할 때 쓰임

 

remove(Object o) : removeFirstOccurrence(Object o)와 동일

 

contain(Object o) : 덱에 Object o와 동일한 엘리먼트가 포함되어 있는지 확인

 

size() : 덱의 크기 

 

iterator() : 덱의 앞쪽부터 순차적으로 실행되는 이터레이터(iterator)를 얻어옴

 

descendingIterator() : 덱의 뒤쪽부터 순차적으로 실행되는 이터레이터(iterator)를 얻어옴

반응형