今天做剑指Offer37 https://leetcode-cn.com/problems/xu-lie-hua-er-cha-shu-lcof/ 唯一性嘛,很明显的层序遍历。 但是,用Queue<TreeNode>的时候发现,因为之前看JCF的时候一般来说用ArrayDeque实现比较高效,所以我一般都会用ArrayDeque,但是这里是不行的,必须用LinkedList实现,因为L
11.2 ConcurrentLinkedQueue类继承了哪些类? AbstractQueue抽象类,具有队列的功能 11.3 ConcurrentLinkedQueue类实现了哪些接口? Queue接口,可作为队列使用 十二、双向数组ArrayDeque类 ArrayDeque原理图 12.1 理解ArrayDeque 由数组组成的双端队列。 没有容量限制,根据需要扩容。 不是线程安全的。 禁止插入null元素。 当用作...
ArrayDeque每次扩容都会在原有的容量上翻倍,这也是对容量必须是2的幂次方的保证。 privatevoiddoubleCapacity(){asserthead==tail;//扩容时头部索引和尾部索引肯定相等intp=head;intn=elements.length;//头部索引到数组末端(length-1处)共有多少元素intr=n-p;//容量翻倍intnewCapacity=n<<1;//容量过大,溢出了if...
图一:java collection 类图 Queue家族 无论是queue还是stack,现在常用的是Deque的实现类:如单线程的ArrayQueue,多线程的ArrayBlockingQueue Deque:读作“deck”,算是一种“双端队列”,即支持头部和尾部的数据访问和增删.---支持stack和queue的操作 关系:ArrayDeque --> Deque(I) -> Queue(I) -> Collection(I...
package day17; import java.util.LinkedList; import java.util.Queue; public class TestQueue03 { public static void main(String[] args) { // 队列 Queue<String> q = new LinkedList<>(); // 入队:向队尾添加元素 // 添加成功true,失败 引发异常 q.add("aa"); // 添加成功true, 失败 false ...