728x90
Queue
- 먼저 들어간 자료가 먼저 나오는 구조 FIFO(First In FIrst Out) 선입선출 구조
- 큐는 한 쪽 끝은 프런트(front)로 정하여 삭제 연산만 수행
- 다른 한 쪽 끝은 리어(rear)로 정하여 삽입 연산만 수행
- 그래프의 넓이 우선 탐색(BFS)에서 사용
- 컴퓨터 버퍼에서 주로 사용, 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼(큐)를 만들어 대기 시킨다.
Queue 선언
import java.util.LinkedList; //import
import java.util.Queue; //import
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언, linkedlist 이용
Queue<String> queue = new LinkedList<>(); //String형 queue 선언, linkedlist 이용
자바에서 큐는 LinkedList를 활용하여 생성해야 한다.
Queue Method
메소드 | 설명 |
boolean add(E e) | 해당 큐의 맨 뒤에 전달된 요소를 삽입함. 만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생시킴. |
E element() | 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함. |
boolean offer(E e) | 해당 큐의 맨 뒤에 전달된 요소를 삽입함. |
E peek() | 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함. 만약 큐가 비어있으면 null을 반환함. |
E poll() | 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거함. 만약 큐가 비어있으면 null을 반환함. |
E remove() | 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거함. |
Queue 예제
Queue<Integer> stack = new LinkedList<>(); //int형 queue 선언
queue.add(1); // queue에 값 1 추가
queue.offer(2); // queue에 값 2 추가
queue.poll(); // queue에 첫번째 값을 반환하고 제거 비어있다면 null
queue.peek(); // queue의 첫번째 값 참조
queue.remove(); // queue에 첫번째 값 제거
queue.clear(); // queue 초기화
728x90
'Java & Spring' 카테고리의 다른 글
[JAVA] isEmpty() 빈 문자열 체크 (0) | 2022.02.28 |
---|---|
[JAVA] String.toCharArray() 사용법 (0) | 2022.02.27 |
[JAVA] Stack 사용법 (0) | 2022.02.25 |
[JAVA] print, println, printf 기초 출력문 (0) | 2022.02.23 |
[JAVA] BufferedRead, BufferedWriter (0) | 2022.02.22 |