java공부

java/자바 Collection Stack구조(후입선출), Queue구조(선입선출)

이쟤키 2021. 8. 15. 18:10
반응형

Stack 구조는 Last In First Out 후입선출 즉 나중에 들어간게 먼저 나오는 구조를 가졌다.

		Stack<Integer> stack = new Stack<>();
		stack.push(1);
		stack.push(2);
		stack.push(3);
		
		while(!(stack.isEmpty())) {
			System.out.print(stack.pop());  // 3 2 1
		}
		
		System.out.println(stack.size());   // 0

이런식으로 1, 2, 3순서로 입력했어도

3, 2, 1로 출력된다.

 

Queue 구조는 First In First Out 선입선출 즉 먼저 들어간 것이 먼저 나오는 구조를 가지고 있다.

		Queue<Integer> q = new LinkedList<>();
		q.offer(3);
		q.offer(2);
		q.offer(1);
		
		while(!(q.isEmpty())) {			
			System.out.print(q.poll());	// 3 2 1		
		}
		
		System.out.println(q.size());   // 0

이런식으로 3, 2, 1순서로 입력하니

입력한 순서대로 3, 2, 1이 출력된다.

 

Stack이든 Queue든 

내보내면 결국 비어서 size로 내부에 몇 개가 있는지 확인해 보면 0이 된다.