코딩항해기
[JAVA] 스택 Stack 본문
스택 Stack
스택은 쌓이다는 뜻을 가진 용어로 데이터를 순서대로 쌓는 자료구조, 컬렉션프레임워크이다.
나중에 들어온 데이터가 제일 먼저 빠져나가는 후입선출 LIFO 구조로 되어있어 가장 나중에 들어온 데이터를 먼저처리하는 취소같은 경우에 사용된다.
LIFO
Last In First Out
스택의 특징
- 후입선출 (LIFO : Last In First Out) 구조 : 먼저 들어온 데이터가 나중에 빠져나가는 구조
- 단방향 입출력 구조 : 데이터의 들어오는 방향과 나가는 방향이 같다.
- 데이터를 하나씩만 넣고 뺄 수 있다.
- 깊이 우선 탐색(DFS)에 이용된다.
- 재귀 함수의 동작 흐름과 같은 구조를 가진다.
스택 사용
선언
Stack<Integer> stack = new Stack<>(); //컬렉션프레임워크 중 하나로 제네릭을 선언해야한다
값 넣기
stack.push(data); //추가한 데이터를 반환한다
stack.add(data); //성공여부를 boolean으로 반환한다
값 삭제
int num = stack.pop(); //가장 마지막에 들어온 값이 삭제된다
//삭제된 값을 반환한다
전체 삭제
stack.clear();
스택 주요 메서드
push(E item) | E | 스택 top에 요소 추가 | stack.push(1) |
pop() | E | top 요소 제거하고 반환 | stack.pop() |
peek() | E | top 요소 반환(제거X) | stack.peek() |
empty() | boolean | 스택이 비었는지 확인 | stack.empty() |
search(Object o) | int | 요소의 위치 반환(top이 1) | stack.search("item") |
size() | int | 스택의 크기 반환 | stack.size() |
clear() | void | 스택의 모든 요소 제거 | stack.clear() |
contains(Object o) | boolean | 요소 포함 여부 확인 | stack.contains(1) |
'JAVA' 카테고리의 다른 글
[JAVA] OOP의 5가지 원칙 (0) | 2024.11.30 |
---|---|
[JAVA] 가변인자 (1) | 2024.10.20 |
[JAVA] 날짜 함수 (JAVA 8 이후) (0) | 2024.10.17 |
[JAVA] UUID Universally Unique Identifier (0) | 2024.10.17 |
[JAVA] JavaDoc 주석 (API주석) (0) | 2024.10.13 |