본문 바로가기
Language/Java

[Java API] Stack 클래스(사용하면 안된다)

by 클레어몬트 2024. 9. 21.

https://claremont.tistory.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-ep5-%EC%8A%A4%ED%83%9DStack

 

[자료구조] ep5) 스택(Stack)

ㅇ스택 ADT: 임의의 개체를 저장하며, 후입선출(Last-In First-Out, LIFO) 순서를 따른다삽입(push)과 삭제(pop)는 스택의 top(스택 포인터)이라 불리는 위치에서 수행  - 직접 응용: 웹페이지들의 기록, ctrl

claremont.tistory.com

스택(Stack)의 개념은 위의 게시글을 참고하자

 

 

(Stack 클래스 사용 예시 코드)

package collection.deque;

import java.util.Stack;

public class StackMain {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
    
        // 스택 요소 쌓기: push()
        stack.push(1);
        stack.push(2);
        stack.push(3);
        System.out.println(stack);

        // 조회: peek()
        System.out.println("stack.peek() = " + stack.peek());

        // 스택 요소 뽑기: pop()
        System.out.println("stack.pop() = " + stack.pop());
        System.out.println("stack.pop() = " + stack.pop());
        System.out.println("stack.pop() = " + stack.pop());
        System.out.println(stack);
    }
}

 

 

 

 

 

 

(주의) Stack 클래스는 사용하지 말자

자바의 Stack 클래스는 내부에서 Vector 라는 자료구조를 사용한다. 이 자료구조는 Java 1.0에 개발되었는데, 지금은 사용되지 않고 하위 호환을 위해서만 존재한다. 지금은 더 빠른 좋은 자료구조가 많다. 따라서 Vector를 사용하는 Stack도 사용하지 않는 것을 권장한다. 대신에 이후에 설명할 Deque 인터페이스를 사용하는 것이 좋다.

 

참고 및 출처: 김영한의 실전 자바 - 중급 2편

https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-2