Stack 클래스는 자바 컬렉션 프레임워크에서 제공하는 후입선출(LIFO, Last In First Out) 구조의 스택을 구현한 클래스입니다. 여기서는 Stack 클래스의 주요 특징과 사용법에 대해 설명하겠습니다.
1. 특징
- 후입선출 (LIFO): 마지막으로 추가된 요소가 가장 먼저 꺼내지는 구조를 가지고 있습니다.
- 상속: Stack 클래스는 Vector 클래스를 상속받아 구현되었기 때문에, Vector 클래스의 모든 메서드를 상속받습니다. (주의: Vector는 다소 구식의 클래스이므로 보통 ArrayList를 더 권장합니다.)
2. 사용법
2.1. 생성과 초기화
// 기본 생성자로 Stack 생성
Stack<String> stack = new Stack<>();
2.2. 요소 추가 및 제거
// 요소 추가
stack.push("Apple");
stack.push("Banana");
stack.push("Orange");
// 요소 제거 (가장 위의 요소 꺼내기)
String topElement = stack.pop();
2.3. 요소 접근
// 가장 위의 요소 확인 (꺼내지 않고)
String topElement = stack.peek();
2.4. 스택이 비어 있는지 확인
boolean isEmpty = stack.isEmpty();
2.5. 스택의 크기 확인
int size = stack.size();
2.6. 스택의 모든 요소 순회
// for-each 루프
for (String item : stack) {
System.out.println(item);
}
// Iterator 사용
Iterator<String> iterator = stack.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
2.7. 기타 메서드
// 스택에서 특정 요소의 위치 찾기 (가장 위의 요소부터 찾음)
int index = stack.search("Banana");
// 스택 비우기
stack.clear();
Stack 클래스는 주로 임시 데이터 저장이나 역추적(Backtracking) 등의 경우에 활용됩니다. 그러나 일반적인 상황에서는 LinkedList를 이용하여 스택을 구현하는 것이 더 선호되는 추세입니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 컬렉션 프레임워크 Iterator (0) | 2023.11.18 |
---|---|
자바 컬렉션 프레임워크 Queue (0) | 2023.11.18 |
자바 컬렉션 프레임워크 LinkedList (0) | 2023.11.18 |
자바 컬렉션 프레임워크 ArrayList (0) | 2023.11.18 |
자바 컬렉션 프레임워크 (0) | 2023.11.18 |