Java

Java_컬렉션 자료구조_검색기능을 강화시킨 컬렉션_LIFO와 FIFO 컬렉션

ssmm95 2024. 10. 18. 11:56

후입선출 LIFO(Last In First Out) 은 마지막에 들어온 데이터가 가장 먼저 나가는 방식 

선입선출 FIFO(First In First Out) 은 먼저 들어온 데이터가 가장 먼저 나가는 방식 

LIFO vs FIFO 비교

구분 LIFO FIFO
정의 마지막에 들어온 데이터가 먼저 나갑니다. 먼저 들어온 데이터가 먼저 나갑니다.
자료구조 스택(Stack) 큐(Queue)
예시 함수 호출 스택, Undo 기능 대기열 시스템, 네트워크 패킷 처리
일상 예시 책을 쌓아 올린 후 맨 위에서부터 꺼내는 방식 줄을 서서 차례대로 물건을 구매하는 방식
동작 방식 Push : 데이터를 스택의 맨 위에 추가한다
Pop :  스택의 맨 위에 있는 데이터를 제거학 반환
Enqueue : 데이터를 큐의 뒤에 추가한다
Dequeue : 큐의 앞에 있는 데이터를 제거하고 반환

이렇게 LIFO와 FIFO는 데이터 처리 순서의 차이에 따라 다르게 사용

 

- Stack 

: Stack클래스는 LIFO 자료구조를 구현한 클래스이다 

Stack 클래스 생성 방법

Stack<E> stack = new Stack<E>();
Stack<E> stack = new Stack<>();

 

리턴타입 메소드 설명
E push(E item) 주어진 객체 Stack에 넣는다
E pop() Stack의 맨 위 객체를 빼낸다

 

- Queue 

: Queue 인터페이스는 FIFO 자료구조에서 사용되는 메소드를 정의하고 있다 

Queue 를 구현하는 인터페이스
(대표적인 클래스는 LinkedList이다 그렇기 때문에 
LinkedList객체를 인터페이스 변수에 다음과 같이 대입이 가능하다)

Queue<E> queue = new LinkedList<E>();
Queue<E> queue = new LinkedList<>();

 

리턴타입 메소드 설명
boolean offer(E e) 주어진 객체를 Queue 에 넣는다
E poll() Queue 에서 객체를 빼낸다