-
[Java]큐(Queue)Algorithm/자료구조 for Algorithm 2020. 9. 25. 21:22
*큐(Queue)
->큐란 선입선출(FIFO : First In First Out)의 특성을 가진 자료구조이다.
->쉽게 말해 먼저 들어간 것이 먼저 나온다. 정거장에 들어오는 지하철이나, 놀이공원에 줄 서 있는 사람들을 생각하면 이해하기 쉽다.
큐 자료구조 *Java의 큐
->큐 입력 연산은 일반적으로 offer() 메서드, 출력 연산은 poll() 메서드를 이용한다(add()와 remove()도 있지만, 이 메서드들은 Exception을 발생시키는 특징이 있다). head에 있는 원소(다음으로 나올 차례인 것)를 확인하는 연산은 peek()메서드를 이용한다.
출처 : https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html ->자바의 Queue관련 API를 살펴보면 인터페이스로 구현되어 있기 때문에, 큐 인터페이스를 상속하여 구현해놓은 LinkedList<E>클래스를 이용하여 객체를 생성한다.
※이외에도 큐는 여러 방면으로 활용되는 경우가 많아, 우선순위큐(PriorityQueue)등의 다른 클래스들을 이용하여 객체를 생성하고 활용할수도 있다.
import java.util.LinkedList; import java.util.Queue; public class test { public static void main(String[] args) { Queue<Integer> q = new LinkedList<Integer>(); // 큐에 1, 2, 3, 4를 차례로 넣는다. q.offer(1); q.offer(2); q.offer(3); q.offer(4); // 제일 처음 넣은 1을 뺀다. q.poll(); // 제일 head의 원소를 확인 : 결과는 2. System.out.println(q.peek()); System.out.println(q); q.clear(); System.out.println(q); } }
'Algorithm > 자료구조 for Algorithm' 카테고리의 다른 글
[Java]우선순위큐(PriorityQueue) (0) 2022.03.22 [Java]서로소 집합(Disjoint Set)(Union-Find)(Merge-Find Set) (0) 2021.04.15 [Java]덱(Deque) (0) 2021.02.18 [Java]해시맵(HashMap) (0) 2021.02.13 [Java]스택(Stack) (0) 2020.09.25