Java의 정석_기초편

Stack과 Queue

DJDU 2022. 11. 2. 22:00

스택

  • LIFO구조. 마지막에 저장된 것을 제일 먼저 꺼낸다.
  • 스택 : 밑이 막힌 상자
  • 'ArrayList' 배열이 적합

  • FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼낸다.
  • 'LinkedList' 연결리스트가 적합 

 

스택과 큐의 메서드

  1. Stack클래스
  2. Queue인터페이스
더보기

Stack클래스

  • Stack클래스가 있다.
  • Stack st = new Stack(); 이렇게 객체 생성해서 사용하면 된다.

 

Queue인터페이스

  • 자바에서 Queue는 인터페이스다.
  • Queue q = new Queue(); 이렇게 객체 생성하면 안 된다.

 

인터페이스를 구현한 클래스 찾기

  1. Queue를 직접 구현
  2. Queue를 구현한 클래스를 사용 <<< 이걸 사용
더보기

Queue를 구현한 클래스를 사용

Java API에서 Queue인터페이스를 찾아본다.

LinkedList가 있다.

Queue를 사용하기 위해 Queue q = new LinkedList();를 작성한다.

참조변수를 Queue타입을 사용했다는 것은 Queue와 자손인 LinkedList의 공통 멤버만 사용했다는 뜻이다.

참조변수를 Queue타입을 사용하면, LinkedList 대신 어떤 Queue를 구현한 클래스를 사용해도 아무런 상관이 없다. (다형성) 따라서 아래 코드(q.offer("0");를 검토할 필요가 없다. 그래서 가능하면 참조변수의 타입을 조상으로 좁혀주는 것이 좋다.

 

예제 11-2

 


스택과 큐의 활용

 

예제 11-3 📎

 

예제 11-4 📎