Language/Java

[Java] Stack vs Queue

i-m-okay 2024. 7. 24. 19:43

Stack과 Queue

  • Stack : LIFO - ArrayList로 구현 - 수식계산, 괄호검사, undo/redo
  • Queue : FIFO - LinkedList로 구현 - 최근 사용문서, 인쇄작업 대기목록, 버퍼

메서드

stack : empty(), peek(), pop(), push(o), search(o)
queue : add(o), remove(), element(), offer(o), poll(), peek()

  • java에서는 Stack은 클래스로 제공하지만 Queue는 따로 클래스로 제공하지 않음 -> Queue인터페이스를 구현한 클래스를 사용하자
  • 추가 메서드 : push(), offer(), add()
  • 꺼내서 반환하는 메서드 : pop(), remove(), poll()

꺼내서 반환하는 메서드들의 차이

  • Stack : pop()peek()은 없으면 EmptyStackException발생
  • Queue: element(), peek()는 삭제 없이 반환하는 메서드(element()는 없을 때 NoSuchElementException, peek()은 없을 때 null)