English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 Deque 인터페이스, 그 사용법 및 메서드를 배울 것입니다.
Java 컬렉션 프레임워크의 Deque 인터페이스는 양쪽队列(Deque) 기능을 제공합니다. 이는 Queue 인터페이스를 상속합니다.
일반적인 큐에서는 요소가 뒤쪽에 추가되고 앞쪽에서 제거되지만, 양쪽队列에서는앞뒤에서 요소를 삽입 및 제거합니다。
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을 반환합니다.
Java Collections 프레임워크의 Stack 클래스는 스택 구현을 제공합니다.
하지만, Deque를 스택 대신 사용하는 것이 좋습니다.Stack 클래스이는 스택 메서드가 동기화된 데 따라입니다.
Deque 인터페이스에서 제공하는 스택 구현 메서드는 다음과 같습니다:
push() - 불릭 퀸즈 앞쪽 요소 추가
pop() - 불릭 퀸즈 앞쪽 요소 제거
peek() - 불릭 퀸즈에서 앞쪽 요소 반환
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。