本文概述
- 和接口声明
- ArrayDeque类
- Java ArrayDeque示例
- Java ArrayDeque示例:offerFirst()和pollLast()
- Java ArrayDeque示例:书
和接口声明
public interface Deque<
E>
extends Queue<
E>
Java Deque接口的方法
方法 | 描述 |
---|---|
boolean add(object) | 它用于将指定的元素插入此双端队列, 并在成功后返回true。 |
boolean offer(object) | 用于将指定的元素插入此双端队列。 |
Object remove() | 它用于检索和删除此双端队列的头部。 |
Object poll() | 它用于检索和删除此双端队列的头部, 如果此双端队列为空, 则返回null。 |
Object element() | 它用于检索但不删除此双端队列的头部。 |
Object peek() | 它用于检索但不删除此双端队列的头部, 如果此双端队列为空, 则返回null。 |
文章图片
ArrayDeque类 ArrayDeque类提供使用双端队列和可调整大小的数组的便利。它继承了AbstractCollection类并实现了Deque接口。
【Java Deque接口】关于ArrayDeque类的要点是:
- 与Queue不同, 我们可以从两侧添加或删除元素。
- ArrayDeque中不允许使用null元素。
- 在没有外部同步的情况下, ArrayDeque不是线程安全的。
- ArrayDeque没有容量限制。
- ArrayDeque比LinkedList和Stack更快。
在页面右侧显示的图中给出了ArrayDeque类的层次结构。
ArrayDeque类声明
我们来看一下java.util.ArrayDeque类的声明。
public class ArrayDeque<
E>
extends AbstractCollection<
E>
implements Deque<
E>
, Cloneable, Serializable
Java ArrayDeque示例
import java.util.*;
public class ArrayDequeExample {
public static void main(String[] args) {
//Creating Deque and adding elements
Deque<
String>
deque = new ArrayDeque<
String>
();
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()
import java.util.*;
public class DequeExample {
public static void main(String[] args) {
Deque<
String>
deque=new ArrayDeque<
String>
();
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示例:书
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<
Book>
set=new ArrayDeque<
Book>
();
//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
推荐阅读
- Java EnumMap类
- Java Collections类
- Java ArrayList类
- 适用于PS4的12大最佳游戏键盘推荐合集(你最喜欢哪一款())
- 如何修复NVIDIA GeForce Experience错误代码0x0003(解决方法)
- 如何修复Windows 10缺少硬件和设备疑难解答(解决办法)
- 31个最佳在线流媒体网站推荐合集(提供免费试用)
- 如何在Android设备上安装Google Chrome扩展(分步指南)
- 21款最好的无水印白板动画软件推荐合集(哪一款最好用())