본문 바로가기
Language/Java

자바 Stack 예제부터 사용방법까지

by wakestand 2020. 2. 23.
반응형

자바에서 Stack의 주요 특징은

나중에 넣은게 먼저 나온다는 것인데

이것을 LIFO (Last In First Out) 이라고 한다

 

1,2,3을 차례대로 넣고 꺼낼 시 3,2,1 순으로 나온다는 것

 

Stack의 주요 메소드는 아래와 같다

 

스택 안에 값 넣기

스택.add(값); 

 

스택 크기 확인

stack.size();

 

스택 출력 시 나올 값 확인

스택.peek();

 

스택 값 변경하기

스택.set(인덱스, 값);

 

스택 값 제거하기

스택.remove(인덱스);

 

스택 인덱스의 값 확인

스택.elementAt(인덱스);

 

스택 특정 값이 어느 인덱스에 들었나 확인

스택.indexOf("값");

 

스택 값 뽑아내기(마지막에 넣은 순서대로 나옴)

스택.pop();

 

스택 비우기

스택.clear();

 

스택 비었는지 확인(true, false)

스택.empty();

 

예제에 사용한 코드는 아래와 같다

 

import java.util.Stack;

public class StackExample {

	public static void main(String[] args) {
		Stack<String> stk = new Stack<String>();
		stk.add("김철수");
		stk.add("이영희");
		stk.add("박영수"); // Stack에 값 추가(나중에 넣은게 먼저 나옴)
		
		// Stack에 특정 값 들었나 확인
		System.out.println("Stack 안에 이영희 들었는지 확인 : " +  stk.contains("이영희"));
		// Stack에서 다음에 나올 값 확인
		System.out.println("Stack pop 시 값 : " + stk.peek());
		// Stack의 i번째 인덱스에 뭐가 들었나 확인
		System.out.println("0번째 인덱스 확인 : " + stk.elementAt(0));
		// Stack에서 특정 값이 어느 인덱스에 들었나 확인
		System.out.println("특정 값의 인덱스 확인 : " + stk.indexOf("이영희"));
		// Stack의 i번째 인덱스 삭제
		stk.remove(2);
		// Stack의 특정 인덱스 값 변경
		stk.set(1, "박영희");
		// Stack의 크기 설정 
		// (설정 이전에 크기보다 Stack의 크기가 작으면 나머지는 null 처리)
		stk.setSize(5);
		
		System.out.println("###For 문 시작###");
		for(int i = 0; i<stk.size();) {
			System.out.println(stk.pop()); // Stack의 값 빼내기
		}
		
		stk.clear(); // Stack 비우기
		System.out.println(stk.empty()); // Stack 비었나 확인
		
	}

}
반응형

댓글