ArrayDeque和LinkedList对比

ArrayDeque和LinkedList对比

ArrayDequeLinkedList 是 Java 集合框架中的两个重要类,分别代表了数组双端队列和链表。它们都实现了 Deque 接口,但内部结构和工作机制有很大差异。

ArrayDeque

ArrayDeque 是基于循环数组实现的双端队列。它使用两个指针 headtail 来追踪队列的头部和尾部,使得在队列两端的添加和移除操作都能高效地进行。

以下是 ArrayDeque 的一个简化的内部结构和关键方法:

public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable {
   
    transient Object[] elements; // 队列元素存储在这个数组中
    transient int head; // 指向队列头部元素的指针
    transient int tail; // 指向下一个元素将被添加到尾部的位置的指针

    public ArrayDeque() {
   
        elements = new Object[16];
    }

    // 添加元素到队尾
    public void addLast(E e) {
   
        elements[tail] = e;
        if ( (tail = (tail + 1) & (elements.length - 1)) == head)
            doubleCapacity(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值