자바의 컬렉션 프레임워크는 LIFO와 FIFO자료구조를 제공한다.
이번 포스팅에서는 LIFO자료구조인 Stack에 대해 알아보도록 하자.
파이썬에서는 별도의 자료구조가 제공되지 않고 리스트를 이용해 구현해야 했지만 자바는 클래스가 제공된다.
Stack은 클래스이며, 다음과 같이 가져온다.
import java.util.Stack;
Stack의 객체 생성 방법
Stack<E> stack = new Stack<>();
Stack<E> stack = new Stack<E>();
Stack클래스의 메서드
| 리턴 타입 | 메서드 | 예외 | 설명 |
| boolean | empty() | 스택이 비어있는지 검사한다. | |
| E | peek() | 스택의 top을 원본의 변경없이 리턴한다. | |
| E | pop() | EmptyStackException - 스택이 비었을 때. |
스택의 top을 삭제 후 리턴한다. |
| E | push(E item) | EmptyStackException - 스택이 비었을 때 |
스택에 top에 요소를 삽입한다. |
| int (스택 내 요소가 존재하지 않으면 -1 리턴) |
Search(Object o) | 매개변수로 받은 객체가 스택의 몇번째 요소(인덱스+1)에 해당하는지 리턴. |
리마인더
참고: https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Stack.html#method-summary
Stack (Java SE 17 & JDK 17)
All Implemented Interfaces: Serializable, Cloneable, Iterable , Collection , List , RandomAccess public class Stack extends Vector The Stack class represents a last-in-first-out (LIFO) stack of objects. It extends class Vector with five operations that all
docs.oracle.com
'Language > Java' 카테고리의 다른 글
| Java Raw Type의 정의와 사용 시 문제점 (0) | 2023.04.03 |
|---|---|
| Java Garbage Collector의 수집 대상이 되기 위해 참조만 끊으면 되는 걸까? (0) | 2023.03.31 |
| 자바의 배열 크기를 바꿀 수 있을까? (0) | 2023.03.26 |
| Java 메서드 인자 전달 메커니즘 (0) | 2023.03.07 |
| [Java] 문자열을 ArrayList로 변환하는 방법 (0) | 2022.10.29 |