【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.

    좋은 웹페이지 즐겨찾기