본문 바로가기

JAVA/기본

Stack 스택(LIFO) / Queue 큐(FIFO)

Stack 스택(LIFO) - 후입선출 (나중에 들어간게 먼저 나온다)

대략 이런 형태

// stack (LIFO: Last In First Out)
// 주요 메소드
// push : 마지막에 아이템 추가
// pop : 마지막 아이템 꺼내기
// peek : 마지막 아이템 보기

// 인스턴스 생성
Stack<Integer> stack = new Stack<Integer>();

stack.push(9);
stack.push(8);
stack.push(3);

// 크기
System.out.println(stack.size()); // 3

// stack.pop();
System.out.println("pop: " + stack.pop()); // 마지막에 push된 3

// pop 해서 2개
System.out.println(stack.size()); // 2

Queue 큐(FIFO) - 선입선출(먼저 들어간게 먼저나옴) 

대략 이런 형태

// Queue : FIFO(First In First Out), 선입선출
// Queue 는 인터페이스여서 구현된 Class를 사용하는데 보통 LinkedList를 사용
// 주요 메소드
// offer : 아이템 추가
// poll : 아이템 꺼내기

Queue<Integer> que = new LinkedList<>();

que.offer(9);
que.offer(8);
que.offer(7);
que.offer(6);

System.out.println(que.poll()); // 9 (선입선출)
System.out.println(que.size()); // 3 (size)

System.out.println(que.poll()); // 8
System.out.println(que.size()); // 2 (size)

'JAVA > 기본' 카테고리의 다른 글

Stream 스트림  (0) 2023.09.12
제네릭스 <> (Generic)  (0) 2023.09.07
람다식 (lambda expression)  (0) 2023.09.04
인터페이스(interface) implements  (0) 2023.09.01
추상 클래스 (abstract class) / 추상 메소드 (abstract method)  (0) 2023.08.30