728x90
이번에는 자바에서 큐를 사용해보자.
이전에 큐는 무엇인가에 대하여 공부했다.
https://superohinsung.tistory.com/178
Java Queue 클래스
java.util 패키지에서 Queue 클래스 제공
메서드 소개
- boolean add(E e): 큐의 끝에 요소를 추가한다. 큐가 가득 찬 경우 예외(IllegalStateException)를 발생시킨다.
- boolean offer(E e): 큐의 끝에 요소를 추가한다. 큐가 가득 찬 경우 요소를 추가하지 않고 false를 반환시킨다.
- E remove(): 큐의 맨 앞에서 요소를 제거하고 반환한다. 큐가 비어있는 경우 예외(NoSuchElementException)를 발생시킨다.
- E poll(): 큐의 맨 앞에서 요소를 제거하고 반환한다. 큐가 비어있는 경우 null을 반환한다.
- E element(): 큐의 맨 앞의 요소를 반환하지만 제거하지 않는다. 큐가 비어있는 경우 예외(NoSuchElementException)를 발생시킨다.
- E peek(): 큐의 맨 앞의 요소를 반환하지만 제거하지 않는다. 큐가 비어있는 경우 null을 반환한다.
Queue 인터페이스를 구현하는 클래스는 일반적으로 LinkedList, PriorityQueue, ArrayDeque 등이 있다. 각 클래스는 큐의 동작 방식과 특성에 따라 다르게 구현되어 있다.
Java 8 이후에는 더 다양한 큐 관련 메서드를 지원하는 Deque 인터페이스와 ArrayDeque 클래스도 있으며, 스택과 큐의 기능을 모두 활용할 수 있다.
// Queue 사용을 위해, LinkedList 클래스를 사용하므로, 두 클래스 모두 import 해야 함
import java.util.LinkedList;
import java.util.Queue;
// 자료형 매개변수를 넣어서, 큐에 들어갈 데이터의 타입을 지정해야 함
Queue<Integer> queue_int = new LinkedList<Integer>(); // Integer 형 queue 선언
Queue<String> queue_str = new LinkedList<String>(); // String 형 queue 선언
// 데이터 추가는 add(value) 또는 offer(value) 를 사용함
queue_int.add(1);
queue_int.offer(2);
// 출력에 true 라고 출력되는 부분은 offer() 메서드가 리턴한 값으로,
// 셀의 맨 마지막에 함수를 넣을 경우, 변수가 변수값이 출력되는 것처럼 함수는 함수 리턴값이 출력되는 것임
// Queue 인스턴스를 출력하면, 해당 큐에 들어 있는 아이템 리스트가 출력됨
System.out.println(queue_int)
// poll() 은 큐의 첫 번째 값 반환, 해당 값은 큐에서 삭제
queue_int.poll();
// poll() 과 마찬가지로, 첫 번째 값 반환하고, 해당 값은 큐에서 삭제
queue_int.remove()
728x90
'Computer Science > DataStructure' 카테고리의 다른 글
[DataStructure] Priority Queue(우선 순위 큐) feat. JAVA (0) | 2023.09.30 |
---|---|
[DataStructure] 해쉬 테이블(HashTable)이란 feat. Java (0) | 2023.09.20 |
[DataStructure] Java에서 스택(Stack) 사용하기. (0) | 2023.07.29 |
[DataStructure] 큐(Queue) feat. C, Java (0) | 2023.07.22 |
[DataStructure] 스택(Stack) feat. C, Java (0) | 2023.07.21 |