자바에서 Stack 은 아래와 같이 선언할 수 있습니다.
Stack<Element> stack = new Stack<>();
데이터를 스택에 추가하고, 해당 값을 반환합니다.
스택의 마지막 요소를 반환하며, 스택에는 변화를 주지 않습니다. 즉, 스택에 가장 먼저 사용될 요소를 반환합니다. 만약, 스택이 비어있을 경우 peek()메서드 호출 시 NoSuchElementException예외가 발생합니다.
스택의 마지막 요소를 제거함과 동시에 해당 값을 반환합니다.
스택이 비어있는지의 여부를 반환합니다. 비어있을 경우, true 비어있지 않을 경우 false를 반환합니다.
메서드의 인자를 스택에서 검색해서 해당 위치를 반환합니다. 만약 해당인자가 여러 개일 경우, 마지막 위치를 반환합니다. 여기서 위치는 인덱스가 아닌 빠져나오는 순서를 뜻합니다.
찾는 값이 스택에 없을 경우 , -1를 반환합니다.
import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
// Stack 선언
Stack<Integer> stack = new Stack<>();
// Push() 메서드를 이용해 스택에 값 추가
stack.push(10);
stack.push(20);
stack.push(30);
System.out.println("Stack after push operations: " + stack);
// Peek() 메서드를 이용해 스택의 마지막 요소 조회 (스택에서 제거하지 않음)
System.out.println("Peek at top element: " + stack.peek());
System.out.println("Stack after peek operation: " + stack);
// Pop() 메서드를 이용해 스택의 마지막 요소 제거 및 반환
System.out.println("Pop the top element: " + stack.pop());
System.out.println("Stack after pop operation: " + stack);
// Empty() 메서드를 이용해 스택이 비어있는지 확인
System.out.println("Is the stack empty? " + stack.empty());
// Search() 메서드를 이용해 특정 요소의 위치 찾기
int position = stack.search(20);
if (position != -1) {
System.out.println("Element 20 found at position (from top): " + position);
} else {
System.out.println("Element 20 not found in the stack.");
}
// 마지막으로 스택이 비어있는지 확인
stack.pop(); // 남은 요소 제거
stack.pop(); // 남은 요소 제거
System.out.println("Is the stack empty after popping all elements? " + stack.empty());
}
}