코테하다보니 종종 등장해서 적어봄
LIFO (last in first out) 특성 이용할 때 사용하는 Stack
주요 메서드
push(item) 스택에 요소 추가
pop() 스택 최상단 요소 제거 및 반환
peek() 스택 최상단 값 조회
isEmpty() 스택이 비어있는지 확인
size() 스택의 사이즈
search(Object o) 해당 요소가 스택에서 몇번째인지 반환. 없으면 -1
사용 예시 코드
import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
// 요소 추가
stack.push(10);
stack.push(20);
stack.push(30);
System.out.println(stack);
// 출력: [10, 20, 30]
// 최상단 요소 조회 (제거X)
System.out.println(stack.peek());
// 출력: 30
// 요소 제거
System.out.println(stack.pop());
// 출력: 30
System.out.println(stack);
// 출력: [10, 20]
// 스택이 비었는지 확인
System.out.println(stack.isEmpty());
// 출력: false
// 스택 크기 확인
System.out.println(stack.size());
// 출력: 2
}
}
FIFO(first in first out) 특성 이용할 때 사용하는 Queue
주요 메서드
opper(item) 큐에 요소 추가. 성공시 true 반환
poll() 큐 맨 앞 요소 제거 및 반환. 비어있으면 null 반환
peek() 큐 맨 앞 값 조회. 비어있으면 null 반환
isEmpty() 큐가 비어있는지 확인
size() 스택의 사이즈
사용 예시 코드
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
// 요소 추가
stack.offer(10);
stack.offer(20);
stack.offer(30);
System.out.println(queue);
// 출력: [10, 20, 30]
// 맨 앞 요소 조회 (제거X)
System.out.println(queue.peek());
// 출력: 10
// 요소 제거
System.out.println(stack.poll());
// 출력: 10
System.out.println(queue);
// 출력: [20, 30]
// 스택이 비었는지 확인
System.out.println(queue.isEmpty());
// 출력: false
// 스택 크기 확인
System.out.println(queue.size());
// 출력: 2
}
}
'Chapter01 > Java' 카테고리의 다른 글
[ Java ] 이중해시맵 + 예시코드 (0) | 2024.06.17 |
---|---|
[ java ] Stream_예시코드 (0) | 2024.05.28 |
[ java ] 객체지향 개발 SOLID 5대 원리 + 예시코드 (1) | 2024.03.13 |
[ Java ] 클래스 정의 (0) | 2024.03.13 |
[ Java ] Overloading 개념 + 예시코드 (0) | 2023.11.07 |