해보자

[Java] Data Structure | Deque 본문

Java

[Java] Data Structure | Deque

안댕 2020. 9. 8. 10:07

Deque

add

  • 원소 추가(push)
  • add(E e) : 마지막 자리(rear)에 push
  • addFirst(E e) : 첫번째 자리(front)에 push
  • addLast(E e) : 마지막 자리(rear)에 push
  • iterator로 원소 접근(C++과 달리 index접근이 불가능하다.)
public static void main(String[] args) {
        Deque<String> dq = new ArrayDeque<String>();
        dq.add("add : 1");
        dq.add("add : 2");
        dq.addFirst("First : 3");
        dq.addLast("Last : 4");

        Iterator<String> it = dq.iterator();
        while(it.hasNext())
            System.out.println(it.next());
    }
}

결과

First : 3
add : 1
add : 2
Last : 4

poll, pop

  • 원소 return 후 pop
  • poll() : 첫번째 자리(front) 원소 return 후 pop
  • pollFirst() : 첫번째 자리(front) 원소 return 후 pop
  • pollLast() : 마지막 자리(rear) 원소 return 후 pop
  • pop() : 첫 번째 자리 원소 return 후 pop
Deque<String> dq = new ArrayDeque<String>();
dq.add("add : 1");
dq.add("add : 2");
dq.addFirst("First : 3");
dq.addLast("Last : 4");

Iterator<String> it = dq.iterator();
while(it.hasNext())
    System.out.println(it.next());
System.out.println(dq.size());

while(!dq.isEmpty())
    System.out.println(dq.poll());
System.out.println(dq.size());

결과

First : 3
add : 1
add : 2
Last : 4
4
First : 3
add : 1
add : 2
Last : 4
0

peek ( peek / get)

  • element를 return만 하고, pop은 하지 않음.
  • peek() : 첫번째 자리(first)의 원소 return
  • peekFirst() : 첫번째 자리(first)의 원소 return
  • peekLast() : 마지막 자리(rear)의 원소 return
Deque<String> dq = new ArrayDeque<String>();
dq.add("add : 1");
dq.add("add : 2");
dq.addFirst("First : 3");
dq.addLast("Last : 4");

System.out.println(dq.peek());
System.out.println(dq.peekFirst());
System.out.println(dq.peekLast());

결과

First : 3
First : 3
Last : 4