자료구조란 자료(data)를 컴퓨터에서 효율적으로 사용하도록 해주는 알고리즘을 뜻합니다.
(효율적 : 실행시간 최소화, 계산의 간편화 등등)

Deque

java.util.Deque를 import합니다.
Double-Ended Queue의 줄임말으로, 큐의 양쪽 끝에서 삽입과 삭제가 모두 발생할 수 있는 큐를 말합니다. 또한, "Queue + Stack"의 기능을 가지고 있습니다.

위의 그림이 일반적으로 deque를 찾으면 나오는 그림입니다. 하지만, 저는 이해가 잘 가지 않아서 그림으로 간단하게 표현했습니다.

Method

추가하기

add

  1. add(E e) : Deque의 마지막에 Element를 삽입
  2. addFirst(E e) : Deque의 front에 요소 삽입
  3. addLast(E e) : Deque의 rear에 요소 삽입

put

add와 동일하게 작용합니다.

  1. put(E e) : Deque의 마지막에 Element를 삽입
  2. putFirst(E e) : Deque의 front에 Element를 삽입
  3. putLast(E e) : Deque의 rear에 Element를 삽입

offer

add와 동일하게 작용합니다.

  1. offer(E e) : Deque의 마지막에 Element를 삽입
  2. offerFirst(E e) : Deque의 front에 Element를 삽입
  3. offerLast(E e) : Deque의 rear에 Element를 삽입

push

  1. push(E e) : Deque의 앞 부분에 Element를 삽입

사용법

1
2
3
4
5
6
7
8
9
10
11
Deque<String> test = new ArrayDeque<String>();

test.add("add : 0");
test.add("add : 1");
test.addFirst("First : 2");
test.addLast("Last : 3");

Iterator<String> e = test.iterator();
while(e.hasNext()){
System.out.println(e.next());
}
  • 결과

삭제하기

poll

  1. poll() : Deque의 제일 앞 Element를 제거합니다. Queue에서 Element를 제거하는 것이라고 생각하면 됩니다.
  2. pollFirst() : Deque의 제일 앞 Element를 제거합니다.
  3. pollLast() : Deque의 제일 마지막 Element를 제거합니다.

pop

  1. pop() : Deque의 제일 앞 Element를 제거합니다. Stack에서 Element를 제거하는 것이라고 생각하면 됩니다.

참고

  • Queue의 경우에는 FIFO:선입선출이기 때문에 제거해야 할 Element가 제일 처음에 들어온 것입니다. [add로 맨 처음에 들어온 것], 즉 제일 앞에 있는 Element
  • Stack의 경우에는 LIFO:후입선출이기 때문에 제거해야 할 Element가 제일 나중에 들어온 것입니다. [push로 맨 나중에 들어온 것], 즉 제일 앞에 있는 Element

값을 제거하지 않고 확인만 하기

peek

1.peek : Deque의 제일 앞 Element를 return 받습니다. Element를 제거하지 않습니다.
2.peekFirst : Deque의 제일 앞 Element를 return 받습니다.

  1. peekLast : Deque의 제일 마지막 Element를 return 받습니다.

get

  1. getFirst : First에 있는 Element를 return 받습니다.
  2. getLast : Last에 있는 Element를 return 받습니다.