본문 바로가기

Java/본격 Java 컬렉션

[Java] Stack 개념

stack / queue
stack - 나중에 들어간 자료가 가장 먼저 나온다.
queue - 입력한 순서대로 자료가 나온다.

.

이런 자료형 구조를 알고 있어야 한다.

.

.

그 중에서 pop()과 peek() 차이를 알아야한다.

pop()은 가장 최근에 들어간 자료를 출력하면서 저장되어있던 자료를 제거한다.

peek()은 가장 최근에 들어간 자료를 출력하면서 저장되어있던 자료를 다시 돌려놓는다

.

.

import java.util.*;

public class StackEx1 {

	public static void main(String[] args) {
		Stack<Integer> st = new Stack<Integer>();
		
		st.push(1001);
		st.push(1002);
		st.push(1003);
		st.push(1004);
		
		System.out.println("Stack의 내용 : " + st); // Stack의 내용 : [1001, 1002, 1003, 1004]
		System.out.println("pop 메소드 수행 : " + st.pop()); // Pop 메소드 수행 : 1004
		System.out.println("pop 수행 후 Stack의 내용 : " + st); // Pop 수행 후 Stack의 내용 : [1001, 1002, 1003]
		System.out.println("1002 데이터 검색 : " + st.search(1002)); // 1002 데이터 검색 : 2(인덱스) // 스택은 인덱스가 1번부터 시작
		System.out.println("1005 데이터 검색 : " + st.search(1005)); // 1005 데이터 검색 : -1 // 없기때문에 -1로 표시
		System.out.println("peek 메소드 수행 : " + st.peek());
		System.out.println("peek 수행 후 Stack의 내용 : " + st);
	}

}

.

.

.

.

그리고 isEmpty()라는 메소드를 이용해 stack이 비어있는지 확인할 수 있다.

그것을 이용하여 stack에 있는 데이터들을 출력해본다

.

.

import java.util.*;

public class StackEx2 {

	public static void main(String[] args) {
		Stack<String> st = new Stack<String>();
		
		st.push("장발장");
		st.push("로빈슨크루소");
		st.push("15소년 표류기");
		st.push("주홍글씨");
		
		System.out.println(st);
		
		// pop을 이용하여 자료 출력하기
		while(!st.isEmpty()) {
			System.out.println(st.pop());
		}
		
	}

}

.

.

728x90
반응형