판봉 개발 일기

LIFO 컬렉션과 Stack 클래스 본문

자바 복습

LIFO 컬렉션과 Stack 클래스

판봉 2021. 7. 14. 12:29
728x90

LIFO 컬렉션은 "후입선출" 이라고도 한다.

"후입선출"이라 함은 나중에 넣은 객체가 먼저 빠져나가는 자료구조를 말한다.

 

LIFO 자료구조를 제공하는 Stack 클래스가 존재한다.

"Stack"은 위의 사진 처럼 세로를 연상하면 이해가 쉬울 것 같다.


다음 표는 Stack 클래스의 주요 메소드이다.

리턴 타입 메소드 설명
E push(E item) 주어진 객체를 스택에 넣음
E peek() 스택의 맨 위 객체를 가져옴
객체를 스택에서 제거하지 않음
E pop() 스택의 맨 위 객체를 가져오지만
객체를 스택에서 제거함

Stack 객체를 생성하는 방법은 아래와 같다.

Stack<E> stack = new Stack<E>();
Stack<E> stack = new Stack<>(); // 왼쪽 Stack에 지정된 타입을 자동으로 따라간다.

다음 코드는 Stack 클래스를 활용한 것이다.

public clas Coin {
	private int value;
    
    public coin(int value) {
    this.value = value;
    }
    
    public int getValue() {
    return value;
    }
}
import java.util.*;

public class StackExample {
	public static void main(String[] args) {
    	Stack<Coin> coinBox = new Stack<Coin>(); // Stack 객체 생성
        
        coinBox.push(new Coin(100)); // Stack 메소드중 하나인 push사용
        coinBox.push(new Coin(50));
        coinBox.push(new Coin(500));
        coinBox.push(new Coin(10));
        
        while(!coinBox.isEmpty()) { // coinBox가 비어있지 않다면
        	Coin coin = coinBox.pop(); // Stack 메소드중 하나인 pop사용 객체를 스텍에서 제거
            System.out.println("꺼내온 동전 : " + coin.getValue() + "원");
        }
    }
}

'자바 복습' 카테고리의 다른 글

입출력 스트림  (3) 2021.07.14
FIFO 컬렉션과 Queue 인터페이스  (2) 2021.07.14
Hashtable에 대하여  (0) 2021.07.14
Map 컬렉션중 하나인 HashMap에 대하여 알아보자  (0) 2021.07.13
Map 컬렉션  (0) 2021.07.13