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

Java 기본 튜토리얼

Java 프로세스 제어

Java 배열

Java object-oriented(I)

Java object-oriented(II)

Java object-oriented(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력 및 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java Deque 인터페이스

이 튜토리얼에서는 Deque 인터페이스, 그 사용법 및 메서드를 배울 것입니다.

Java 컬렉션 프레임워크의 Deque 인터페이스는 양쪽队列(Deque) 기능을 제공합니다. 이는 Queue 인터페이스를 상속합니다.

양쪽队列의 작동 원리

일반적인 큐에서는 요소가 뒤쪽에 추가되고 앞쪽에서 제거되지만, 양쪽队列에서는앞뒤에서 요소를 삽입 및 제거합니다

Deque 구현 클래스

Deque 인터페이스의 기능을 사용하려면 인터페이스를 구현한 클래스를 사용해야 합니다:

Deque를 어떻게 사용하나요?

Java에서는 Deque를 사용하려면 패키지 java.util.Deque를 가져오어야 합니다.

Deque<String> animal1 = new ArrayDeque<>();
Deque<String> animal2 = new LinkedList<>();

여기서, ArrayDeque와 LinkedList 객체 animal을 각각 생성합니다1과 animal2。 이러한 객체는 Deque 인터페이스의 기능을 사용할 수 있습니다.

양쪽队列의 메서드

Deque는 Queue 인터페이스를 상속했기 때문에, 이를 상속합니다:Queue 인터페이스의모든 메서드.

Queue 인터페이스에서 사용할 수 있는 메서드 외에도 Deque 인터페이스에는 다음과 같은 메서드가 포함됩니다:

  • addFirst() - 양쪽队列의 앞쪽에 지정된 요소를 추가합니다. 양쪽队列가 가득 찬 경우 예외를 발생시킵니다.

  • addLast() - 양쪽队列의 뒤쪽에 지정된 요소를 추가합니다. 양쪽队列가 가득 찬 경우 예외를 발생시킵니다.

  • offerFirst() - 양쪽队列의 앞쪽에 지정된 요소를 추가합니다. 양쪽队列가 가득 찬 경우 false를 반환합니다.

  • offerLast() - 불릭 퀸즈의 끝에 지정된 요소를 추가합니다. 불릭 퀸즈가 꽉 찬 경우 false를 반환합니다.

  • getFirst() - 불릭 퀸즈의 첫 번째 요소를 반환합니다. 불릭 퀸즈가 비어 있으면 예외를 발생시킵니다.

  • getLast() - 불릭 퀸즈의 마지막 요소를 반환합니다. 불릭 퀸즈가 비어 있으면 예외를 발생시킵니다.

  • peekFirst() - 불릭 퀸즈의 첫 번째 요소를 반환합니다. 불릭 퀸즈가 비어 있으면 null을 반환합니다.

  • peekLast() - 불릭 퀸즈의 마지막 요소를 반환합니다. 불릭 퀸즈가 비어 있으면 null을 반환합니다.

  • removeFirst() - 불릭 퀸즈의 첫 번째 요소를 반환하고 제거합니다. 불릭 퀸즈가 비어 있으면 예외를 발생시킵니다.

  • removeLast() - 불릭 퀸즈의 마지막 요소를 반환하고 제거합니다. 불릭 퀸즈가 비어 있으면 예외를 발생시킵니다.

  • pollFirst() - 불릭 퀸즈의 첫 번째 요소를 반환하고 제거합니다. 불릭 퀸즈가 비어 있으면 null을 반환합니다.

  • pollLast() - 불릭 퀸즈의 마지막 요소를 반환하고 제거합니다. 불릭 퀸즈가 비어 있으면 null을 반환합니다.

Deque를 스택으로 사용

Java Collections 프레임워크의 Stack 클래스는 스택 구현을 제공합니다.

하지만, Deque를 스택 대신 사용하는 것이 좋습니다.Stack 클래스이는 스택 메서드가 동기화된 데 따라입니다.

Deque 인터페이스에서 제공하는 스택 구현 메서드는 다음과 같습니다:

  • push() - 불릭 퀸즈 앞쪽 요소 추가

  • pop() - 불릭 퀸즈 앞쪽 요소 제거

  • peek() - 불릭 퀸즈에서 앞쪽 요소 반환

ArrayDeque 클래스에서 Deque 구현

import java.util.Deque;
import java.util.ArrayDeque;
class Main {
    public static void main(String[] args) {
        // ArrayDeque 클래스를 사용하여 Deque 생성 
        Deque<Integer> numbers = new ArrayDeque<>();
        //Deque에 요소 추가
        numbers.offer(1);
        numbers.offerLast(2);
        numbers.offerFirst(3);
        System.out.println("Deque: "	) + numbers);
        //Deque의 요소 접근
        int firstElement = numbers.peekFirst();
        System.out.println("첫 번째 요소: "	) + firstElement);
        int lastElement = numbers.peekLast();
        System.out.println("마지막 요소: " + lastElement);
        //Deque에서 요소 제거하기
        int removedNumber1 = numbers.pollFirst();
        System.out.println("첫 번째 요소 제거하기: " + removedNumber1);
        int removedNumber2 = numbers.pollLast();
        System.out.println("마지막 요소 제거하기: " + removedNumber2);
        System.out.println("업데이트된 Deque: " + numbers);
    }
}

출력 결과

Deque: [3, 1, 2]
첫 번째 요소: 3
마지막 요소: 2
첫 번째 요소 제거하기: 3
마지막 요소 제거하기: 2
업데이트된 Deque: [1]

자세한 정보를 알고 싶다면 방문해 주세요Java ArrayDeque