Java:如何使用Deque';s
我正在学习如何使用这个物体Java:如何使用Deque';s,java,deque,Java,Deque,我正在学习如何使用这个物体 布尔加法(E) 将指定的元素插入此deque表示的队列中 (换句话说,在本文件末尾)如果可能的话 在不违反容量限制的情况下立即返回true 成功后,如果没有空格,则抛出一个非法状态异常 当前可用。 我对“如果当前没有可用的空间”感到困惑。我没有看到任何设置大小的地方,这是否意味着没有中的空间,没有JVM 我正在研究如何制作一个包含5个值的Deque,我想添加一个值,并在值为5时删除最旧的值 我希望这是有意义的,如果没有请让我详细说明,我会 非常感谢SOF社区 如何使用
布尔加法(E)
将指定的元素插入此deque表示的队列中
(换句话说,在本文件末尾)如果可能的话
在不违反容量限制的情况下立即返回true
成功后,如果没有空格,则抛出一个非法状态异常
当前可用。
我对“如果当前没有可用的空间”感到困惑。我没有看到任何设置大小的地方,这是否意味着没有中的空间,没有JVM 我正在研究如何制作一个包含5个值的Deque,我想添加一个值,并在值为5时删除最旧的值 我希望这是有意义的,如果没有请让我详细说明,我会 非常感谢SOF社区 如何使用Deque(然后就是将它包装成您希望用几个
if
语句支持的方法):
Deque deq=newlinkedlist()//要具有固定大小,请使用ArrayQue
deq.addFirst(“a”);
System.out.println(deq.peekFirst())//a-只是看一下,不要移除
deq.addFirst(“b”);
System.out.println(deq.peekFirst())//B
System.out.println(deq.peekLast())//A.
deq.addLast(“c”);
System.out.println(deq.peekLast())//C
deq.添加(“d”);
System.out.println(deq.peekLast())//D
System.out.println(deq.pollLast())//d-返回并移除
System.out.println(deq.pollLast())//C
如果您想使用某种循环缓冲区,您可能希望改用此Apache Commons集合-这就是我使用
Deque的方法-
很简单,但我认为它解决了您试图解决的问题
public class DequeExample {
Deque<Integer> deque = new ArrayDeque<>();
public static void main(String[] args) {
DequeExample dequeExample = new DequeExample();
// adding elements
for( int idx = 0; idx < 9; idx++){
dequeExample.addNewest(idx);
}
}
private void addNewest(int newest){
if(deque.size() == 5){
System.out.println("Queue at capacity, removing element before adding more.");
Integer e = deque.removeLast();
System.out.println("Removed: " + e);
}
deque.push(newest);
System.out.println("Added: " + newest );
System.out.println(deque);
}
}
public类dequeen示例{
Deque Deque=新的ArrayDeque();
公共静态void main(字符串[]args){
DequeExample DequeExample=新的DequeExample();
//添加元素
for(intidx=0;idx<9;idx++){
dequeExample.addlatest(idx);
}
}
私有void addlatest(int-latest){
如果(deque.size()==5){
System.out.println(“按容量排队,在添加更多元素之前删除元素”);
整数e=deque.removeLast();
系统输出打印项次(“删除:+e);
}
推送(最新);
System.out.println(“添加:“+最新”);
系统输出打印LN(deque);
}
}
“我看不到任何设置大小的地方”-这是因为它是特定于实现的。从文档中可以看出:“大多数Deque实现对其可能包含的元素数量没有固定的限制,但此接口支持容量受限的Deque以及没有固定大小限制的Deque。”例如,请参见。如果您查看实现类,Deque是一个接口,他们有一个构造函数,您可以在其中指定初始容量。我正在研究如何创建Deque:不要创建Deque实现。只需在类中使用一个元素,如果达到大小限制,则在添加元素之前删除最旧的元素。。
public class DequeExample {
Deque<Integer> deque = new ArrayDeque<>();
public static void main(String[] args) {
DequeExample dequeExample = new DequeExample();
// adding elements
for( int idx = 0; idx < 9; idx++){
dequeExample.addNewest(idx);
}
}
private void addNewest(int newest){
if(deque.size() == 5){
System.out.println("Queue at capacity, removing element before adding more.");
Integer e = deque.removeLast();
System.out.println("Removed: " + e);
}
deque.push(newest);
System.out.println("Added: " + newest );
System.out.println(deque);
}
}