본문 바로가기

JAVA/DAY 19 _ 23.09.12

(collection framework의) Stack

 ## 스택(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