본문 바로가기

DataStructure

[Java] 덱 / 디큐 (Deque) 자료구조

📌 덱 / 디큐 (Deque) 란?

  • 덱은 Doble - Ended Queue의 줄임말로 큐의 양쪽에서 데이터를 넣고 뺄 수 있는 형태의 자료구조이다.
  • 자바에서 덱은 인터페이스로 구현되어 있다.
// 선언 방법
Deque<Integer> deque = new ArrayDeque<>();
Deque<Integer> linkedList = new LinkedList<>();

// 값 추가
deque.addFirst() // 값을 맨 앞쪽에 추가한다. 용량을 초과하면 예외가 발생.
deque.offerFirst() // 값을 맨 앞쪽에 추가한다. boolean 을 반환.
deque.addLast() // 맨 뒤쪽에 값을 추가한다. 용량을 초과하면 예외 발생.
deque.offerLast() // 맨 뒤쪽에 값을 추가한다. boolean 을 반환.

// 값 삭제
deque.removeFirst() // 맨 앞쪽에 값을 제거한다. 비어있으면 예외 발생.
deque.pollFirst() // 맨 앞쪽에 값을 제거한다. 비어 있으면 null 을 반환.
deque.removeLast() // 맨 뒤쪽에 값을 제거한다. 비어있으면 예외 발생.
deque.pollLast() // 맨 뒤쪽에 값을 제거한다. 비어 있으면 null 을 반환.
deque.remove() // removeFirst() 와 같다.
deque.poll() // pollFirst() 와 같다.

// 기타 메서드
deque.getFirst(); // 첫 번째 엘리먼트를 확인한다. 비어있으면 예외 발생.
deque.peekFirst(); // 첫 번째 엘리먼트를 확인한다. 비어있으면 null 반환.
deque.peek();// peekFirst()와 같다.

deque.getLast(); // 마지막 엘리먼트를 확인한다. 비어있으면 예외 발생.
deque.peekLast();// 마지막 엘리먼트를 확인한다. 비어있으면 null 반환

deque.contain(); // 인자와 동일한 엘리먼트가 포함되어 있는지 확인한다.
deque.size(); // Deque에 들어있는 엘리먼트의 개수 반환.