Deque

Deque

§ 初始化

直接初始化

/*作为队列使用*/
Deque<Integer> stk = new ArrayDeque<>();
/*作为栈使用*/
Deque<Integer> stk = new LinkList<>();

§ 常用API

添加

boolean add(E e) / boolean offer(E e):

队尾添加元素,添加成功都返回true,二者区别在于对有容量限制的对象,在超过上限时:

  • add会抛出异常
  • offer会返回false

void addFirst(E e) / boolean offerFirst(E e)

队首添加元素,区别在于有无返回值

void addLast(E e) / boolean offerLast(E e)

队尾添加元素,区别在于有无返回值

void push(E e)

队首添加元素,等价于addFirst

删除

E remove() / E poll()

删除队首元素,返回删除的元素,区别在于队列为空时:

  • remove抛出异常
  • poll返回null

E removeFirst() / E poolFirst()

删除队首元素

E removeLast() / E pollLast()

删除队尾元素

E pop()

删除队首元素

获取

E element() / E peek():

返回队首元素,不删除,为空时

  • element报错
  • peek返回null

E getFirst() / E peekFirst():

返回队首元素

E getLast() / E peekLast():

返回队尾元素

判断

int size()

返回长度

boolean isEmpty()

判断是否为空

boolean contains(Object o)

判断是否有指定元素

§ 用法

Deque可以用作链表、队列、栈等结构

  • 作为链表,实现类使用**LinkList,添加和删除推荐使用addremove**
  • 作为队列,实现类使用**ArrayDeque,添加和删除推荐使用offerpoll**
  • 作为双端队列,实现类使用**LinkList,添加和删除推荐使用addFirst/offerFirst/addLast/offerLastremoveFirst/pollFirst/removeLast/pollLast**
  • 作为栈使用,实现类使用**LinkList,添加和删除推荐使用pushpop**
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java中的Deque是一种双端队列,它可以在两端进行插入和删除操作。Deque是"Double Ended Queue"的缩写。在Java中,Deque接口是Queue接口的子接口,它扩展了Queue接口,提供了更多的方法来支持双端操作。 可以使用Java的LinkedList类来实现Deque接口。下面是一个使用Deque的简单示例: ```java import java.util.Deque; import java.util.LinkedList; public class DequeExample { public static void main(String[] args) { Deque<String> deque = new LinkedList<>(); // 在队尾添加元素 deque.addLast("element1"); deque.offerLast("element2"); deque.offer("element3"); // offer方法等同于offerLast // 在队头添加元素 deque.addFirst("element4"); deque.offerFirst("element5"); System.out.println("Deque: " + deque); // 获取并移除队尾元素 String lastElement = deque.removeLast(); System.out.println("Removed last element: " + lastElement); // 获取并移除队头元素 String firstElement = deque.removeFirst(); System.out.println("Removed first element: " + firstElement); System.out.println("Updated Deque: " + deque); } } ``` 输出结果: ``` Deque: [element5, element4, element1, element2, element3] Removed last element: element3 Removed first element: element5 Updated Deque: [element4, element1, element2] ``` 在上面的示例中,我们使用了Deque的常用方法,如addFirst、addLast、offerFirst、offerLast、removeFirst和removeLast等。 希望这个示例对你有帮助!如果还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值