본문 바로가기
프로그래밍언어/Java

[자바의 정석] 11. 컬렉션 프레임웍 - Stack과 Queu

by qkzkdo 2023. 8. 6.
728x90

1.4 Stack과 Queue

스택은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out)구조로 되어있다.

큐는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In First Out)구조로 되어있다.

 

순차적으로 데이터를 추가하고 삭제하는 스택에는 ArrayList와 같은 배열기반의 컬렉션 클래스가 적합.

큐는 데이터의 추가/삭제가 쉬운 LinkedList로 구현하는 것이 적합.

 

  • 스택(Stack)은 클래스로 구현하여 제공하고 있음(Stack st = new Stack();)
  • 큐(Queue)는인터페이스로만 정의해놓음
    큐 인터페이스를 구현한클래스들을 사용하면 됨(Queue q = new LinkedList();)

 

스택과 큐의 활용

스택의 활

  • 수식계산, 수식괄호검사, 워드프로세서의 undo(취소)/redo(원래대로), 웹브라우저의 뒤로/앞으로

큐의 활

  • -최근사용문서, 인쇄작업 대기목록, 버퍼(buffer) →작업계속쌓임(최근문서목록)

 

PriorityQueue

Queue인터페이스의 구현체 중의 하나로, 저장한 순서에 관계없이 우선순위(priority)가 높은 것부터 꺼내게 된다는 특징이 있다.

 

Deque(Double-Ended Queue)

Queue의 변형으로, 양쪽 끝에서 추가/삭제가 가능하다.

 

 

 

출처 : 남궁성. 「자바의 정석」. 도우출판. 2016

728x90