Queue
줄을 지어 순서대로 처리되는 자료구조로 데이터를 일시적으로 쌓아두기 위해 사용된다.
스택 ( FILO - First In Last Out ) 과 다르게 FIFO( First In First Out )구조를 가진다.
BFS에서 사용된다.
[ 사용법 ]
import java.util.LinkedList;
import java.util.Queue;
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언, linkedlist 이용
Queue allqueue = new LinkedList(); // 어떠한 자료형이든 삽입, 삭제 가능 = int와 String 데이터 공존
[ 데이터 추가 ]
add(value) , offer(value)를 사용하여 추가할 수 있다.
add(value)의 경우 데이터 추가 성공시 true를 반환하고 큐의 여유공간이 없어 삽입에 실패 시 IllegalStateException를 발생시킨다.
offer(value)의 경우 데이터 추가 성공시 true를 반환하고 큐의 여유공간이 없어 삽입에 실패 시 false를 반환시킨다.
queue.add(1); // queue에 값 1 추가
queue.add(2); // queue에 값 2 추가
queue.offer(3); // queue에 값 3 추가
[ 데이터 삭제 ]
queue.poll(); // queue에 첫번째 값을 반환하고 제거 / 비어있다면 null 반환
queue.remove(); // queue에 첫번째 값의 데이터 타입을 반환하고 제거 / 비어있다면 Exception("NoSuchElementException")발생
queue.remove(value); // queue에 value가 존재하면 삭제 후 true 반환 / 없다면 false
queue.clear(); // queue 초기화
[ 데이터 접근 ]
queue.peek(); // queue의 첫번째 값 참조
[ queue 크기 확인 ]
queue.size();
[ 데이터 존재 유무 ]
queue.contains(value) // 데이터가 있으면 true 반환 없으면 false 반환
[ 공백 큐 확인 ]
queue.isEmpty(); //공백이면 true, 아니라면 false 반환
'Java' 카테고리의 다른 글
[ Java ] 1차원, 2차원 배열 복사 - 깊은 복사와 얕은 복사 (1) | 2024.02.08 |
---|---|
[ Java ] int을 String으로, String을 int로 바꾸기 (0) | 2024.01.30 |
[JAVA] ArrayList와 ArrayList 배열 (비정형 배열) (0) | 2023.11.04 |
Java - 오버라이딩(Overriding)과 오버로딩(Overloading) (0) | 2022.09.06 |
Java - 입력에서 문자(char) 하나 받아오기 (0) | 2022.09.05 |