오늘은 스택과 큐에 대해서 알아보자.
데이터를 쌓아올린 형태의 자료구조이다. 가장 마지막에 들어간 자료가 가장 먼저 나온다
후입선출(LIFO, Last In First Out)의 구조라고 한다.
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>(); // 스택의 선언
stack.push(1);
stack.push(2);
stack.push(3);// 스택의 3을 대입
stack.pop(); // 스택의 가장 나중에 대입한 값 삭제
stack.peek(); // 상단의 값 출력
stack.size(); //스택의 크기 출력
stack.clear(); //스택의 전체 값 삭제
stack.isEmpty(); // 스택이 비어있는지 비어있다면 true 출력
stack.contains(1); // 스택에 1이 포함되어 있는지 있다면 true 출력
}
}
먼저 들어온 것이 먼저 나가는 선입선출(FIFO, First in first out) 구조를 갖는다.
Queue<Integer> queue = new LinkedList<>();
queue.offer(1); //주어진 객체 삽입 성공시 true 실패시 false
queue.add(2); // 주어진 객체 삽입 성공시 true 실패시 Exception
System.out.println(queue.peek()); // 큐의 head 리턴 비었다면 null 반환
System.out.println(queue.element()); // 큐의 head 리턴 비었다면 Exception
System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll()); //front에 위치한 객체 리턴 후 제거 큐가 비었다면 null
System.out.println(queue.remove(1)); // 특정 객체 제거 큐가 비었다면 null