Java의 정석_기초편
Stack과 Queue
DJDU
2022. 11. 2. 22:00
스택
- LIFO구조. 마지막에 저장된 것을 제일 먼저 꺼낸다.
- 스택 : 밑이 막힌 상자
- 'ArrayList' 배열이 적합
큐
- FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼낸다.
- 'LinkedList' 연결리스트가 적합
스택과 큐의 메서드
- Stack클래스
- Queue인터페이스
더보기


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

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

인터페이스를 구현한 클래스 찾기
- Queue를 직접 구현
- Queue를 구현한 클래스를 사용 <<< 이걸 사용
더보기

Queue를 구현한 클래스를 사용
Java API에서 Queue인터페이스를 찾아본다.

LinkedList가 있다.
Queue를 사용하기 위해 Queue q = new LinkedList();를 작성한다.
참조변수를 Queue타입을 사용했다는 것은 Queue와 자손인 LinkedList의 공통 멤버만 사용했다는 뜻이다.
참조변수를 Queue타입을 사용하면, LinkedList 대신 어떤 Queue를 구현한 클래스를 사용해도 아무런 상관이 없다. (다형성) 따라서 아래 코드(q.offer("0");를 검토할 필요가 없다. 그래서 가능하면 참조변수의 타입을 조상으로 좁혀주는 것이 좋다.
예제 11-2
스택과 큐의 활용
예제 11-3 📎