Stack<Integer> stack = new Stack<>();
// push, add : 데이터 추가
stack.push(1);
stack.add(2);
// peek : 스택의 마지막 요소 출력
stack.peek();
// pop : 스택의 마지막 요소 반환 + 제거
stack.pop();
// isEmpty : 스택이 비어있는지의 여부, 비어있으면 true, 값이있으면 false
stack.isEmpty();
// clear : 스택의 전체값 초기화
stack.clear();
// size : 스택의 크기
stack.size();
// contains : 스택에 특정값 있는지 확인, 있으면 true
stack.contains(1);
Queue<Integer> queue = new LinkedList<>();
// add, offer : 데이터 추가
queue.add(1)
queue.offer(2);
// peek : 가장 먼저 들어간 값 조회
queue.peek();
// poll : 큐의 첫번째 요소 반환 + 제거
queue.poll();
// isEmpty : 큐가 비어있는지의 여부, 비어있으면 true, 값이있으면 false
queue.isEmpty();
// clear : 큐의 전체값 초기화
queue.clear();
// size : 큐의 크기
queue.size();
// contains : 큐에 특정값 있는지 확인, 있으면 true
queue.contains(1);
❓ 왜 Queue는 LinkedList로 구현하나?
- Queue 자료구조는 삽입삭제가 빈번하므로 LinkedList를 사용한다.
//낮은 숫자가 우선 순위인 int 형 우선순위 큐 선언
PriorityQueue<Integer> priorityQueueLowest = new PriorityQueue<>();
//높은 숫자가 우선 순위인 int 형 우선순위 큐 선언
PriorityQueue<Integer> priorityQueueHighest = new PriorityQueue<>(Collections.reverseOrder());
PriorityQueue<Integer> pqueue = new PriorityQueue<>();
// add, offer : 데이터 추가
pqueue.add(1);
pqueue.offer(2);
// poll : 우선순위가 제일높은 값 반환, 디폴트는 제일 낮은숫자
pqueue.poll();
// isEmpty : 큐가 비어있는지의 여부, 비어있으면 true, 값이있으면 false
pqueue.isEmpty();
// clear : 큐 초기화
pqueue.clear();
// size : 큐의 사이즈 반환
pqueue.size();