[JAVA] Stack

2024. 12. 7. 19:05·JAVA

안녕하새오.

오늘은 자바의 Stack 인터페이스에 대해 알아보겠습니다.

 

 

[ 목차 ]

     

     

     

    Stack이란?

    LIFO(Last In, First Out) 방식으로 작동하는 자료구조입니다.

    java.util.Stack 패키지에 포함되어 있고, Vector 클래스를 상속받습니다.

    (Vector 클래스는 멀티스레드 환경에서 동기화를 제공합니다)

    동기화된 메서드를 제공하지만, Deque보다 느립니다.

    1-based 인덱스를 사용합니다. (배열은 0-based 인덱스)

    크기가 고정되어 있지 않습니다. OutOfMemoryError 발생하지 않는 한 무제한으로 push 가 가능합니다.

    import java.util.Stack;
    
    public class Main {
        public static void main(String[] args) {
            Stack<Integer> stack = new Stack<>();
        }
    }

     

     

     

     

     

     

    Stack 클래스의 주요 메서드

    1. push(E e) : 스택의 맨 위에 요소를 추가하고 그 값을 반환합니다.

    2. pop() : 스택의 맨 위의 요소를 제거하고 그 값을 반환합니다. 비어있다면 EmptyStackException이 발생합니다.

    3. peek() : 스택의 맨 위의 요소를 제거하지 않고 값을 반환합니다. 비어있다면 EmptyStackException이 발생합니다.

    4. empty() : 비어있다면 true, 아니라면 false를 반환합니다.

    5. search(Obejct o) : 주어진 요소의 위치를 1-based 인덱스로 반환합니다. 존재하지 않는다면 -1을 반환합니다.

     

    + Vector를 상속받았기 때문에 Vector 클래스의 메서드들도 사용이 가능합니다.

       (add / isEmpty / size / clear / contains / elementAt(idx) )

    'JAVA' 카테고리의 다른 글

    [JAVA] 자바의 Map, 그리고 순회  (0) 2024.12.10
    [JAVA] 인터페이스란(Interface)? - 추상클래스와의 차이  (1) 2024.12.09
    [JAVA] Deque + 왜 LinkedList보다 ArrayDeque로 구현하는 것이 더 좋을까?  (0) 2024.12.06
    [Java] Queue  (0) 2024.12.05
    'JAVA' 카테고리의 다른 글
    • [JAVA] 자바의 Map, 그리고 순회
    • [JAVA] 인터페이스란(Interface)? - 추상클래스와의 차이
    • [JAVA] Deque + 왜 LinkedList보다 ArrayDeque로 구현하는 것이 더 좋을까?
    • [Java] Queue
    hyeblee
    hyeblee
    감자감자
    • hyeblee
      hyeblee
      hyeblee
    • 전체
      오늘
      어제
      • 분류 전체보기
        • PS
          • Programmers
          • BAEKJOON
          • CODETREE
        • ALGORITHM
        • JAVA
        • CS
          • 면접을 위한 CS전공지식
        • SPRING
        • 회고
    • 블로그 메뉴

      • 홈
      • 태그
      • 방명록
    • 링크

      • 깃허브
    • 공지사항

    • 인기 글

    • 태그

      플레이데이터 백엔드 부트캠프 후기
      BFS
      spring #springboot #스프링 #스프링부트
      날짜와 시간 계산
      플레이데이터 백엔드 부트캠프
      플레이데이터 백엔드
      탐색
      흐른 일수 계산
      16954
      왔다 갔던 구역2
      15652
      반닫힌 구간
      arrays.sort #collections.sort #list.sort #객체정렬 #배열정렬 #timsort #dual pivot quicksort #정렬 #자바
      spring #스프링 #스프링부트 #springboot #please sign in
      숨바꼭질3
      알고리즘
      java #스프링부트 #자바버전 #자바 버전 충돌 #jvm
      백준
      backjoon
      흐른 시간 계산
      BOJ
      플레이데이터 백엔드 후기
      하한값
      dfs
      백트래킹
      상한값
      구간 칠하기
      java #deque #자바 #덱
      자바
      java
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    hyeblee
    [JAVA] Stack
    상단으로

    티스토리툴바