logo

Java Deque 인터페이스

Deque라는 인터페이스는 java.util 패키지에 있습니다. 인터페이스 대기열의 하위 유형입니다. Deque는 데이터 구조의 양쪽 끝에서 요소 추가 및 제거를 지원합니다. 따라서 deque는 스택이나 큐로 사용될 수 있습니다. 우리는 스택이 LIFO(후입선출) 작업을 지원하고 대기열에서 선입선출 작업을 지원한다는 것을 알고 있습니다. deque는 두 가지를 모두 지원하므로 언급된 작업 중 하나를 수행할 수 있습니다. 데크는 의 약자이다. '이중 종료 대기열'.

Deque 인터페이스 선언

 public interface Deque extends Queue 

Java Deque 인터페이스의 방법

방법 설명
부울 추가(객체) 지정된 요소를 이 deque에 삽입하고 성공 시 true를 반환하는 데 사용됩니다.
부울 제안(객체) 이 deque에 지정된 요소를 삽입하는 데 사용됩니다.
객체 제거() 이 데크의 헤드를 검색하고 제거하는 데 사용됩니다.
객체 폴링() 이 deque의 헤드를 검색하고 제거하는 데 사용되며, 이 deque가 비어 있으면 null을 반환합니다.
객체요소() 이 데크의 헤드를 검색하는 데 사용되지만 제거하지는 않습니다.
객체 엿보기() 이 deque의 헤드를 검색하는 데 사용되지만 제거하지는 않습니다. 또는 이 deque가 비어 있는 경우 null을 반환합니다.
객체 엿보기First() 이 메서드는 데크의 헤드 요소를 반환합니다. 이 메서드는 데크에서 어떤 요소도 제거하지 않습니다. deque가 비어 있는 경우 이 메서드는 Null을 반환합니다.
객체 peekLast() 이 메서드는 deque의 마지막 요소를 반환합니다. 이 메서드는 데크에서 어떤 요소도 제거하지 않습니다. deque가 비어 있는 경우 이 메서드는 Null을 반환합니다.
불리언 OfferFirst(e) 대기열 앞에 요소 e를 삽입합니다. 삽입에 성공하면 true가 반환됩니다. 그렇지 않으면 거짓입니다.
객체 제안마지막(e) 대기열의 끝에 요소 e를 삽입합니다. 삽입에 성공하면 true가 반환됩니다. 그렇지 않으면 거짓입니다.
자바 arraydeque 계층 구조

ArrayDeque 클래스

우리는 Java에서 인터페이스 객체를 생성하는 것이 불가능하다는 것을 알고 있습니다. 따라서 인스턴스화를 위해서는 Deque 인터페이스를 구현하는 클래스가 필요하며 그 클래스는 ArrayDeque입니다. 사용량에 따라 늘어나고 줄어듭니다. 또한 AbstractCollection 클래스를 상속합니다.

ArrayDeque 클래스의 중요한 점은 다음과 같습니다.

  • Queue와 달리 양쪽에서 요소를 추가하거나 제거할 수 있습니다.
  • ArrayDeque에는 Null 요소가 허용되지 않습니다.
  • ArrayDeque는 외부 동기화가 없으면 스레드로부터 안전하지 않습니다.
  • ArrayDeque에는 용량 제한이 없습니다.
  • ArrayDeque는 LinkedList 및 Stack보다 빠릅니다.

ArrayDeque 계층 구조

ArrayDeque 클래스의 계층 구조는 페이지 오른쪽에 표시된 그림에 나와 있습니다.

파이썬의 새 줄

ArrayDeque 클래스 선언

java.util.ArrayDeque 클래스 선언을 살펴보겠습니다.

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

Java ArrayDeque 예

파일 이름: ArrayDequeExample.java

 import java.util.*; public class ArrayDequeExample { public static void main(String[] args) { //Creating Deque and adding elements Deque deque = new ArrayDeque(); deque.add('Ravi'); deque.add('Vijay'); deque.add('Ajay'); //Traversing elements for (String str : deque) { System.out.println(str); } } } 

산출:

Ravi Vijay Ajay 

Java ArrayDeque 예: OfferFirst() 및 pollLast()

파일 이름: DequeExample.java

 import java.util.*; public class DequeExample { public static void main(String[] args) { Deque deque=new ArrayDeque(); deque.offer('arvind'); deque.offer('vimal'); deque.add('mukul'); deque.offerFirst('jai'); System.out.println('After offerFirst Traversal...'); for(String s:deque){ System.out.println(s); } //deque.poll(); //deque.pollFirst();//it is same as poll() deque.pollLast(); System.out.println('After pollLast() Traversal...'); for(String s:deque){ System.out.println(s); } } } 

산출:

After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal 

Java ArrayDeque 예: 도서

파일 이름: ArrayDequeExample.java

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class ArrayDequeExample { public static void main(String[] args) { Deque set=new ArrayDeque(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to Deque set.add(b1); set.add(b2); set.add(b3); //Traversing ArrayDeque for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

산출:

101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6