【Java】Queue, Deque, Stack의 관계

Deque(데크)는 「double ended queue」(양단 큐)의 약어.
Queue, Deque, Stack 메서드를 비교할 수 있는 그림을 만들었습니다. (이 그림이 의외로 발견되지 않았다.)
  • 삽입 (요소 삽입)
  • 삭제 (요소 검색 및 삭제)
  • 검사 (요소를 얻지만 삭제하지 않음)



  • 메서드에는 각각 두 가지 형식이 있습니다.
    하나는 조작이 실패했을 때에 예외를 슬로우 해, 다른 하나는 특수한 값 (조작에 따라 null 또는 false)을 돌려줍니다.



    Queue


    조작
    위치
    방법
    설명


    삽입
    후미
    boolean add(E e)
    요소가 추가되지 않은 경우 예외를 throw


    boolean offer(E e)
    요소가 추가되지 않으면 false를 반환합니다.

    삭제
    선두
    E remove()
    큐가 하늘의 경우는 NoSuchElementException를 슬로우


    E poll()
    큐가 비어 있으면 null을 반환합니다.

    검사
    선두
    E element()
    큐가 하늘의 경우는 NoSuchElementException를 슬로우


    E peek()
    큐가 비어 있으면 null을 반환합니다.


    Deque



    Deque


    조작
    위치
    방법
    설명


    삽입
    후미
    boolean add(E e)
    요소가 추가되지 않은 경우 예외를 throw


    void addLast (E e)



    boolean offer(E e)
    요소가 추가되지 않으면 false를 반환합니다.


    boolean offerLast(E e)


    선두
    void push(E e)
    요소가 추가되지 않은 경우 예외를 throw


    void addFirst (E e)



    boolean offerFirst(E e)
    요소가 추가되지 않으면 false를 반환합니다.

    삭제
    후미
    E removeLast()
    양단 큐가 하늘의 경우는 NoSuchElementException를 슬로우


    E pollLast()
    양단 큐가 비어 있으면 null을 반환합니다.

    선두
    E remove()
    양단 큐가 하늘의 경우는 NoSuchElementException를 슬로우


    E removeFirst()



    E poll()
    양단 큐가 비어 있으면 null을 반환합니다.


    E pollFirst()


    검사
    후미
    E getLast()
    양단 큐가 하늘의 경우는 NoSuchElementException를 슬로우


    E peekLast()
    양단 큐가 비어 있으면 null을 반환합니다.

    선두
    E element()
    양단 큐가 하늘의 경우는 NoSuchElementException를 슬로우


    E getFirst()



    E peek()
    양단 큐가 비어 있으면 null을 반환합니다.


    E peekFirst()



    스택



    스택


    조작
    위치
    방법
    설명


    삽입
    선두
    E add (E e)
    추가한 요소 반환

    삭제
    선두
    E pop()
    스택이 비어 있으면 EmptyStackException을 throw

    검사
    선두
    E peek()
    스택이 비어 있으면 EmptyStackException을 throw


    클래스 다이어그램



    주요 수업을 게시.

    BlockingDeque: 요소를 취득할 때 양단 큐가 비어 있지 않을 때까지 대기, 또는 요소의 삽입시에 양단 큐에 빈 상태가 될 때까지 대기하는 블록 조작을 서포트하는 Deque.

    좋은 웹페이지 즐겨찾기