## 스택(Stack)
// - 데이터를 후입선출(LIFO, Last-In-First-Out) 방식으로 저장하고 관리
// - 주로 데이터의 역순으로 처리하는 상황에서 유용하게 사용됨
// - 보통 반복문을 돌리지는 않음
/# 특징:
//
// 1. 후입선출 (LIFO):
// - 가장 마지막에 추가된 요소가 가장 먼저 제거됩니다.
// - 이러한 특성은 주로 재귀 함수 호출, 뒤로가기 버튼, 실행 취소 기능 등과 같이 역순으로 처리해야 하는 상황에서 유용합니다.
//
// 2. 요소 추가 및 제거: 스택은 주로 push (요소 추가)와 pop (요소 제거) 연산을 통해 데이터를 관리합니다.
//
// 3. 한쪽 끝에서 추가 및 제거: 요소는 보통 스택의 한쪽 끝에서 추가되고 제거됩니다.
// --> 마지막 요소를 삭제하는게 쉬우니까 ArrayList로 구현한다
//
// 4. 값을 추출하는 방법 : pop() 메서드를 사용하여 스택의 맨 위(가장 최근에 추가된) 요소를 제거하고 반환합니다.
Stack<String> stack = new Stack<>();
// 요소 추가
stack.push("첫 번째 요소");
stack.push("두 번째 요소");
stack.push("세 번째 요소");
// 요소 제거 및 출력
while (!stack.isEmpty()) {
String element = stack.pop();
System.out.println("제거된 요소: " + element);
}
## 예시
// Stack - 위에부터 하나씩 탁탁쳐서 없애는 그거그거
// 메모리생성
Stack<String> stackList = new Stack<>();
stackList.push("하이1");
stackList.push("하이2");
stackList.push("하이3");
stackList.push("하이4");
stackList.push("하이5");
// 보통은 반복문 안쓰지만, 확인용!
for(String ex : stackList) {
System.out.println(ex);
}
System.out.println("==== POP을쓰면 맨마지막 요소인 5가 없어지겠지 ====");
String pop = stackList.pop();
System.out.println(pop); // 출력 : 하이5 --> 지금 없애는 요소
for(String ex : stackList) {
System.out.println(ex); // 출력 : 하이1~4 --> 5가 없어졌네!
}
'JAVA > DAY 19 _ 23.09.12' 카테고리의 다른 글
자료구조 summary, 시간복잡도 (0) | 2023.09.12 |
---|---|
HashMap2 (0) | 2023.09.12 |
HashMap (4) | 2023.09.12 |
Set (0) | 2023.09.12 |
Queue (0) | 2023.09.12 |