[Java] 컬렉션(Stack)

정재현·2024년 1월 17일

Java

목록 보기
19/43
post-thumbnail

Stack

  • 값을 수직으로 쌓아놓고 넣었다가 빼서 조회하는 형식으로 데이터를 관리하는 배열
  • LIFO(Last-In-First-out) : 나중에 들어간 것이 가장 먼저 나오는 성질

사용할 때

  • 최근 저장된 데이터를 나열
  • 데이터의 중복처리를 막고싶을때 사용

기능

  • 선언 : Stack<Integer> intStack 형태로 선언합니다.
  • 생성 : new Stack<Integer>() 형태로 생성합니다.

주요 기능

  • 추가 : push(추가할 값) 형태로 값을 추가
  • 조회 : peek() 형태로 맨 위값을 조회
  • 꺼내기 : pop() 형태로 맨 위값을 꺼냄 (꺼내고나면 삭제됨)

기타 기능

  • 비었는지 확인 : isEmpty() 형태로 배열이 비어있으면 true, 아니면 false 반환

예시

// Stack 
// (사용하기 위해선 import java.util.Stack; 를 추가해야 함)
import java.util.Stack;

public class Main {

	public static void main(String[] args) {
		Stack<Integer> intStack = new Stack<Integer>(); // 선언 및 생성
		
		intStack.push(1);
		intStack.push(2);
		intStack.push(3);

		while (!intStack.isEmpty()) { // 다 지워질때까지 출력
		    System.out.println(intStack.pop()); // 3,2,1 출력
		}

		// 다시 추가
		intStack.push(1);
		intStack.push(2);
		intStack.push(3);
		
		// peek()
		System.out.println(intStack.peek()); // 3 출력
		System.out.println(intStack.size()); // 3 출력 (peek() 할때 삭제 안됬음)
		
		// pop()
		System.out.println(intStack.pop()); // 3 출력
		System.out.println(intStack.size()); // 2 출력 (pop() 할때 삭제 됬음)		
		
		System.out.println(intStack.pop()); // 2 출력
		System.out.println(intStack.size()); // 1 출력 (pop() 할때 삭제 됬음)		

		while (!intStack.isEmpty()) { // 다 지워질때까지 출력
		    System.out.println(intStack.pop()); // 1 출력 (마지막 남은거 하나)
		}
	}
}

profile
공부 기록 보관소

0개의 댓글