Back/JAVA

컬렉션 프레임워크(Collection Framework) - Stack, Queue

시월해 2021. 3. 17. 17:19

* Stack 클래스(자료 구조)


 - 후입선출(LIFO : Last In First Out) 구조임.

 

* Queue 인터페이스(자료구조)


 - 인터페이스이므로 자식클래스로 객체 생성하여 사용.
 - 대표적인 자식클래스는  LinkedList임.
 - 특징 : 선입선출(FIFO : First In First Out) 구조임.


예제1) Stack 클래스

import java.util.Stack;

public class Ex06 {

	public static void main(String[] args) {
		
		Stack<String> stack = new Stack<String>();
		
		// 1.push() : stack에 저장시키는 메서드.
		stack.push("강감찬");
		stack.push("세종대왕");
		stack.push("김 구");
		stack.push("윤봉길");
		stack.push("광개토태왕");
		
		// 2. peek() : stack 맨위에 저장된 데이터를 가져오는 메서드.
		//             데이터를 stack에서 제거하는 것은 아님.
		System.out.println("stack peek() >>> " + stack.peek());
		System.out.println();
		
		// 3. pop() : stack 맨위에 저장된 데이터를 가져오는 메서드.
		//            데이터를 stack에서 제거함.
		
		while(!stack.isEmpty()) {
			System.out.println("이 름 >>> "+ stack.pop());
		}

		
	}

}


예제2) Queue 클래스

import java.util.LinkedList;
import java.util.Queue;

public class Ex07 {

	public static void main(String[] args) {
		
		Queue<String> queue = new LinkedList<String>();
		
		// 1. offer() : 큐에 저장하는 메서드.
		queue.offer("100번 손님");
		queue.offer("101번 손님");
		queue.offer("102번 손님");
		queue.offer("103번 손님");
		queue.offer("104번 손님");
		queue.offer("105번 손님");
		
		// 2. peek() : 큐에 저장된 데이터를 가져오는 메서드.(데이터 제거X)
		System.out.println("처음 호출한 번호 >>> " + queue.peek());
		System.out.println();
		
		// 3. poll() : 큐에 저장된 데이터를 가져오는 메서드.(데이터 제거O)
		while(!queue.isEmpty()) {
			System.out.println("호출한 번호 >>> " + queue.poll());
		}
		
		

	}

}