컬렉션 프레임워크 (Collection Framework) - 2.3. Stack

CJI0524·2024년 7월 10일

Java/Collection Framework

목록 보기
5/26

1. Stack 클래스

Stack 클래스는 본 그림에서와 같이 Vector를 상속하며 마지막에 저장한 데이터를 가장 먼저 꺼내는 LIFO(Last In First Out)구조의 자료구조이다. 현대 자바 프로그래밍에서 Vector 클래스의 사용이 권장되지 않으므로 Vector를 상속받는 Stack 클래스의 사용 역시 권장되지 않는다.

그러므로 Stack 방식의 자료구조를 이용하고 싶다면 Deque를 구현한 ArrayDeque, LinkedList 클래스를 사용한다

2. 클래스에 정의된 메서드 목록

Stack 클래스는 Vector를 상속하므로 Vector의 모든 메서드를 사용가능하다. 하지만 Vector의 메서드를 사용할 경우, Stack의 사용의도를 벗어나는 경우가 많아 Stack 전용의 메서드만 서술한다.

2.1. 생성자

메서드기능
Stack()빈 새로운 Stack을 생성

2.1. 삽입 / 탐색 / 삭제 메서드

삽입

메서드기능
Object puch(Object item)Stack에 객체(item)를 저장

탐색

메서드기능
Object peek()Stack의 맨 위에 있는 저장된 객체를 반환.
pop()과 달리 Stack에서 객체를 꺼내지는 않음
비었을 때는 EmptyStackException 발생
int search(Object o)Stack에서 주어진 객체(o)를 찾아서 그 위치를 반환
못찾으면 -1을 반환
배열과 달리 위치는 0이 아닌 1부터 시작

삭제

메서드기능
Object pop()Stack의 맨위에 저장된 객체를 꺼내서 반환
비었을 때는 EmptyStackException 발생

2.3. 추가 핵심 기능

컬렉션 상태 체크 / 변경

메서드기능
boolean empty()Stack이 비어있는지 알려줌

3. 해당 게시글 작성에 참고한 글 목록

자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서

profile
개발돌이

0개의 댓글