Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- GitHub #Commit #BaekJoon
- 10991
- 뒤집은 소수
- java
- 공통원소 구하기
- 등수구하기
- 연속부분수열
- 임시반장 정하기
- 누적 계산
- Pointer
- 배열
- 백준
- 모든행과열대각선의합
- 최대 길이
- 두 배열 합치기
- 보이는 학생
- 투 포인터
- 알고리즘
- array
- 자바
- 큰 수 출력하기
- 가장 짧은 문자거리
- 아스키코드
- ArrayList
- 10992
- 격자판
- 점수계산
- 인프런
- 코테준비
- Two Pointer
Archives
- Today
- Total
ezhoon
Stack 주요 기능 정리 본문

Stack이란
구조 중 하나인 Stack은 말 그대로 쌓다 라는 의미를 갖고 있는 자료 구조입니다.
Stack의 가장 큰 특징은 LIFO(Last In First Out) 나중에 들어간 것이 먼저 나온다는 것입니다.

특징 정리
- 먼저 들어간 자료가 나중에 나온다 LIFO 구조
- 재귀적 함수를 호출 할 때 주로 사용
- 그래프의 깊이 우선 탐색(DFS)에서 사용
Stack 사용법
- Stack 선언 구문
import java.util.Stack;
Stack 값 추가
push("값") 메서드를 사용해서 Stack에 원하는 값을 추가합니다.
public static void main(String[] args) {
Stack<Integer> intStack = new Stack<>(); // int형 Stack
Stack<String> stringStack = new Stack<>(); // String형 Stack
intStack.push(1);
intStack.push(2);
intStack.push(3);
stringStack.push("A");
stringStack.push("B");
stringStack.push("C");
System.out.println("intStack = " + intStack);
System.out.println("stringStack = " + stringStack);
}

Stack 값 삭제
Stack에서 값을 제거 할 때는 pop()이라는 메서드를 사용합니다.
하지만 제가 원하는 값을 없애는 게 가장 나중에 추가한 값만 사라진 다는 것을 유의해야 합니다
public static void main(String[] args) {
Stack<Integer> intStack = new Stack<>(); // int형 Stack
Stack<String> stringStack = new Stack<>(); // String형 Stack
intStack.push(1);
intStack.push(2);
intStack.push(3);
intStack.pop(); // 가장 마지막에 들어온 3 삭제
stringStack.push("A");
stringStack.push("B");
stringStack.push("C");
stringStack.pop(); // 가장 마지막에 들어온 "C" 삭제
System.out.println("intStack = " + intStack);
System.out.println("stringStack = " + stringStack);
}

만약 모든 값을 제거 하고 싶다면 clear 메소드를 사용하면 됩니다.
intStack.clear();
stringStack.clear();

Stack 가장 상단의 값 출력
peek() 메서드를 이용해서 가장 나중에 추가한 값을 찾을 수 있습니다.
public static void main(String[] args) {
Stack<Integer> intStack = new Stack<>(); // int형 Stack
intStack.push(1);
intStack.push(2);
intStack.push(3);
System.out.println("intStack = " + intStack.peek());
}

Stack 비어있는지 체크
empty() 메서드를 이용해서 비어있는 경우 true 값을 받을 수 있습니다.
public static void main(String[] args) {
Stack<Integer> intStack = new Stack<>();
// intStack이 비어있는 경우 sout 출력
if(intStack.empty()) System.out.println("intStack 은 비어있습니다.");
}
'Java > 이론 및 사용방법' 카테고리의 다른 글
선택정렬 (0) | 2022.02.02 |
---|---|
Queue 주요 기능 정리 (0) | 2022.01.27 |
Map - HashMap (0) | 2022.01.23 |
Set - HashSet, TreeSet, LinkedHashSet (0) | 2022.01.17 |
EOF이란 무엇인가? (0) | 2022.01.06 |