English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 프로세스 제어

Java 배열

Java 객체 지향(I)

Java 객체 지향(II)

Java 객체 지향(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 콜렉션

Java Set 콜렉션

Java 입력 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java Queue 인터페이스

이 튜토리얼에서는 Java Queue 인터페이스와 그 메서드를 배웁니다.

Java 컬렉션 프레임워크의 Queue 인터페이스는 큐 데이터 구조의 기능을 제공합니다. 그것은 Collection 인터페이스를 상속합니다.

큐를 구현한 클래스

Queue는 인터페이스이므로 직접 구현을 제공할 수 없습니다.

Queue의 기능을 사용하려면 그 구현 클래스를 사용해야 합니다:

Queue를 상속한 인터페이스

Queue 인터페이스는 다양한 서브 인터페이스를 상속할 수 있습니다:

  • Deque

  • BlockingQueue

  • BlockingDeque

큐 데이터 구조의 작업 프로세스

큐에서는 다음과 같이 사용됩니다:First In First Out그런 방식으로 요소를 저장하고 접근합니다. 즉,요소를 뒤에서 추가하고 앞에서 요소를 제거하는 방식으로 요소를 저장하고 접근합니다.

Queue(큐)를 어떻게 사용하나요?

Java에서는 Queue를 사용하려면 java.util.Queue 패키지를 가져와야 합니다。

// LinkedList를 사용하여 생성
Queue<String> animal1 = new LinkedList<>();
// ArrayDeque를 사용하여 생성
Queue<String> animal2 = new ArrayDeque<>();
// PriorityQueue를 사용하여 생성
Queue<String> animal 3 = new PriorityQueue<>();

여기서, LinkedList, ArrayDeque, PriorityQueue의 객체 Animal을 각각 생성합니다1،Animal2와 Animal3. 이 객체는 Queue 인터페이스의 기능을 사용할 수 있습니다.

Queue 메서드

Queue 인터페이스는 Collection 인터페이스의 모든 메서드를 포함합니다. 이는 Collection이 Queue의 슈퍼 인터페이스이기 때문입니다.

Queue 인터페이스의 일부 일반적인 메서드는 다음과 같습니다:

  • add() - 지정된 요소를 큐에 삽입합니다. 작업이 성공하면 add()이 true를 반환하며, 실패하면 예외를 발생시킵니다.

  • offer() - 지정된 요소를 큐에 삽입합니다. 작업이 성공하면 offer()이 true를 반환하며, 실패하면 false를 반환합니다.

  • element() - 큐의 앞부분을 반환합니다. 큐가 비어 있으면 예외를 발생시킵니다.

  • peek() - 큐의 앞부분을 반환합니다. 큐가 비어 있으면 null을 반환합니다.

  • remove() - 대상을 반환하고 제거합니다. 큐가 비어 있으면 예외를 발생시킵니다.

  • poll() - 대상을 반환하고 제거합니다. 큐가 비어 있으면 null을 반환합니다.

Queue 인터페이스 구현

1. LinkedList 클래스 구현

import java.util.Queue;
import java.util.LinkedList;
class Main {
    public static void main(String[] args) {
        // LinkedList 클래스를 사용하여 Queue를 생성
        Queue<Integer> numbers = new LinkedList<>();
        //요소를 Queue에 추가
        numbers.offer(1);
        numbers.offer(2);
        numbers.offer(3);
        System.out.println("Queue: " + numbers);
        // Queue의 요소 접근
        int accessedNumber = numbers.peek();
        System.out.println("요소 접근: "); + accessedNumber);
        //Queue 요소에서
        int removedNumber = numbers.poll();
        System.out.println("요소 제거: "); + removedNumber);
        System.out.println("업데이트된 Queue: "); + numbers);
    }
}

출력 결과

Queue: [1, 2, 3]
요소 접근: 1
요소 제거: 1
업데이트된 Queue: [2, 3]

更多信息를 원하시면 방문해 주세요Java LinkedList

2. PriorityQueue 클래스 구현

import java.util.Queue;
import java.util.PriorityQueue;
class Main {
    public static void main(String[] args) {
        // PriorityQueue 클래스를 사용하여 큐를 생성 
        Queue<Integer> numbers = new PriorityQueue<>();
        //요소를 Queue에 추가
        numbers.offer(5);
        numbers.offer(1);
        numbers.offer(2);
        System.out.println("Queue: " + numbers);
        //Queue의 요소 접근
        int accessedNumber = numbers.peek();
        System.out.println("요소 접근: "); + accessedNumber);
        //Queue에서 요소 제거
        int removedNumber = numbers.poll();
        System.out.println("요소 제거: "); + removedNumber);
        System.out.println("업데이트된 Queue: "); + numbers);
    }
}

출력 결과

Queue: [1, 5, 2]
요소 접근: 1
요소 제거: 1
업데이트된 Queue: [2, 5]

更多信息를 원하시면 방문해 주세요Java PriorityQueue

다음 튜토리얼에서는 Queue 인터페이스의 다양한 서브 인터페이스와其实제를 자세히 설명할 것입니다.