자바

JAVA STEP 34. 컬렉션(Queue&Stack)

IT의 큰손 2023. 2. 23. 17:40
728x90

★ ADT

  • Abstract Data Type
  • Stack, Queue
  • 물리적인 특성은 배열과 동일한데, 사용법이 특별한 자료형

 

1.  Queue

  • 선입선출
  • FIFO
  • 소스코드
  •  
public static void main(String[] args) {
		
		//선입선출
		Queue<String> queue = new LinkedList<String>();

		//1. 요소 추가하기
		queue.add("빨강");
		queue.add("노랑");
		queue.add("파랑");
		
		//2. 요소 개수
		System.out.println(queue.size());
		
		//3. 요소 읽기(=꺼내기)
		System.out.println(queue.poll());
		System.out.println(queue.size());
		
		System.out.println(queue.poll());
		System.out.println(queue.size());
		
		System.out.println(queue.poll());
		System.out.println(queue.size());
		
		//값이 비어있어서 null값을 반환
		System.out.println(queue.poll());
		
		//4. 비었는지?
		System.out.println(queue.size() ==0);
		System.out.println(queue.isEmpty());
		
		//5. 구경하기
		queue.add("초록");
		System.out.println(queue.peek());
		System.out.println(queue.size());

	}

}

 

2. Stack

  • 후입 선출
  • LIFO
  • 소스코드
  •  
public class Ex76_Stack {

	public static void main(String[] args) {
		
		//후입 선출
		Stack<String> stack = new Stack<String>();
		
		//1. 요소 추가하기
		stack.push("빨강");
		stack.push("노랑");
		stack.push("파랑");
		
		//2. 요소 개수 확인
		System.out.println(stack.size());
		
//		//3. 요소 읽기(= 꺼내기 = 삭제하기)
//		System.out.println(stack.pop());
//		System.out.println("사이즈 : "+ stack.size());
//		
//		System.out.println(stack.pop());
//		System.out.println("사이즈 : "+ stack.size());
//
//		System.out.println(stack.pop());
//		System.out.println("사이즈 : "+ stack.size());
//		
//		//System.out.println(stack.pop());
//		// 사이즈가 0이기 때문에 에러 발생.
		
		while (stack.size() > 0) {
			System.out.println(stack.pop());
		}
		
		//4. 스택이 비어있는지?
		System.out.println(stack.size()==0); 
		System.out.println(stack.isEmpty());
		
		stack.push("빨강");
		stack.push("노랑");
		stack.push("파랑");
		
		//5.마지막 요소가 무엇인지 확인하는 메소드 즉, 다음번 pop이 될 데이터를 확인만 하는 용도
		System.out.println(stack.peek());
		System.out.println(stack.size());
	}

}

 

 

 

728x90