728x90
Stack
- 먼저 들어간 자료가 나중에 나옴 LIFO(Last In First Out) 후입선출 구조
- 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 함
- 인터럽트처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 쓰임
- 그래프의 깊이 우선 탐색(DFS)에서 사용
- 재귀적(Recursion) 함수를 호출 할 때 사용
Stack 선언
import java.util.Stack; //import
Stack<Integer> stack = new Stack<>(); //int형 스택 선언
Stack<String> stack = new Stack<>(); //char형 스택 선언
Stack Method
메소드 | 설명 |
boolean empty() | 해당 스택이 비어 있으면 true를, 비어 있지 않으면 false를 반환. |
E peek() | 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환. |
E pop() | 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환하고, 해당 요소를 스택에서 제거. |
E push(E item) | 해당 스택의 제일 상단에 전달된 요소를 삽입. |
int search(Object o) | 해당 스택에서 전달된 객체가 존재하는 위치의 인덱스를 반환. 이때 인덱스는 제일 상단에 있는(제일 마지막으로 저장된) 요소의 위치부터 0이 아닌 1부터 시작. |
Stack 예제
Stack<Integer> stack = new Stack<>(); //int형 스택 선언
stack.push(1); // stack에 값 1 추가
stack.push(2); // stack에 값 2 추가
stack.size(); // stack의 크기 출력 : 2
stack.peek(); // stack의 가장 상단의 값 출력
stack.pop(); // stack에 값 제거
stack.clear(); // stack의 전체 값 제거 (초기화)
stack.empty(); // stack이 비어있는제 check (비어있다면 true)
stack.contains(1) // stack에 1이 있는지 check (있다면 true)
728x90
'Java & Spring' 카테고리의 다른 글
[JAVA] String.toCharArray() 사용법 (0) | 2022.02.27 |
---|---|
[JAVA] Queue 사용법 (0) | 2022.02.26 |
[JAVA] print, println, printf 기초 출력문 (0) | 2022.02.23 |
[JAVA] BufferedRead, BufferedWriter (0) | 2022.02.22 |
[JAVA] Math.max(), Math.min() 최대,최소값 구하기 (0) | 2022.02.21 |