English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 예제에서는 Java로 큐 데이터 구조를 구현하는 방법을 배웁니다.
이 예제를 이해하려면 먼저 다음 튜토리얼을 방문해야 합니다.
public class Queue { int SIZE = 5; int items[] = new int[SIZE]; int front, rear; Queue() { front = -1; rear = -1; } //데이터열이 가득 찬지 확인 boolean isFull() { if (front == 0 && rear == SIZE - 1) { return true; } return false; } //데이터열이 비어있는지 확인 boolean isEmpty() { if (front == -1) return true; else return false; } //요소를 큐에 삽입합니다 void enQueue(int element) { //데이터열이 가득 찬 경우 if (isFull()) { System.out.println("Queue is full"); } else {}} if (front == -1) { //front를 첫 번째 요소로 표시 front = 0; } rear++; //뒤에 요소 추가 items[rear] = element; System.out.println("Insert "); + element); } } //데이터열에서 요소를 제거 int deQueue() { int element; //데이터열이 비어있을 경우 if (isEmpty()) { System.out.println("Queue is empty"); return (-1); } else {}} //큐 앞에서 요소를 제거합니다. element = items[front]; //데이터열이 하나만 있는 경우 if (front >= rear) { front = -1; rear = -1; } else {}} //다음 요소를 front로 표시 front++; } System.out.println(element + "Deleted"); return (element); } } //표시队列요소 void display() { int i; if (isEmpty()) { System.out.println("Empty Queue"); } else {}} //큐의 앞을 표시합니다 System.out.println("\n앞쪽 인덱스-> " + front); //큐의 요소를 표시합니다 System.out.println("아이템 -> "); for(i = front; i <= rear; i++) System.out.print(items[i] + " "); // 큐의 뒤쪽을 표시합니다 System.out.println("\n뒤쪽 인덱스-> " + rear); } } public static void main(String[] args) { //Queue 클래스의 객체를 생성합니다 Queue q = new Queue(); //큐에서 요소를 제거하려고 시도합니다 // 현재 큐가 비어 있습니다 // 따라서 제거할 수 없습니다 q.deQueue(); // 요소를 큐에 삽입합니다 for(int i = 1; i < 6; i ++) { q.enQueue(i); } // 요소6개의 요소를 큐에 추가할 수 없습니다. 큐가 가득 찼습니다. q.enQueue(6); q.display(); // deQueue는 첫 번째로 입력된 요소를 제거합니다. 예를 들어:1 q.deQueue(); //지금은 우리는4개의 요소 q.display(); } }
출력 결과
큐가 비어 있습니다 삽입 1 삽입 2 삽입 3 삽입 4 삽입 5 큐가 가득 찼습니다 앞쪽 인덱스-> 0 아이템 -> 1 2 3 4 5 뒤쪽 인덱스-> 4 1 삭제된 앞쪽 인덱스-> 1 아이템 -> 2 3 4 5 뒤쪽 인덱스-> 4
위의 예제에서 Java로 큐 데이터 구조를 구현했습니다.
Java는 큐를 구현할 수 있는 내장 인터페이스 Queue를 제공합니다.
import java.util.Queue; import java.util.LinkedList; class Main { public static void main(String[] args) { //LinkedList 클래스를 사용하여 큐를 생성합니다. Queue<Integer> numbers = new LinkedList<>(); // enqueue //큐 마지막에 요소를 추가합니다. numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " ); + numbers); // dequeue //큐 앞에서 요소를 제거합니다. int removedNumber = numbers.poll(); System.out.println("삭제된 요소: " ); + removedNumber); System.out.println("삭제 후 대기队列: ") + numbers); } }
출력 결과
Queue: [1, 2, 3] 삭제된 요소: 1 삭제 후 대기队列: [2, 3]
위의 예제에서 우리는 Java의 Queue 인터페이스를 사용하여 큐를 구현했습니다. 여기서는 Queue 인터페이스를 구현하는 LinkedList 클래스를 사용했습니다.
Numbers.offer() - 요소를 큐의 마지막에 삽입합니다
Numbers.poll() - 큐의 가장 앞에서 요소를 제거합니다
주의하십시오. 우리는 큐를 생성할 때 괄호 <Integer>를 사용했습니다. 이는 큐가 제너릭 타입임을 의미합니다. 제너릭에 대한更多信息를 알고 싶다면 다음을 방문하십시오:Java 제너릭.
우리는 다른 인터페이스와 클래스를 Queue와 LinkedList 대신 사용할 수 있습니다. 예를 들어: