1. Java Queue 1. Java Queue 重要观点 Java Queue接口是Java Collections Framework的成员。 Queue 实现通常不允许插入 null 元素 队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。不过优先级队列和 LIFO 队列 ...
分类:
编程语言 时间:
2019-05-04 20:06:35
阅读次数:
237
小结: 1、 借助linkedlist,每次添加元素后,反转,取逆序 Implement Stack using Queues - LeetCodehttps://leetcode.com/problems/implement-stack-using-queues/solution/ Impleme ...
分类:
其他好文 时间:
2019-05-02 21:22:57
阅读次数:
136
做题时的问题: 两个单调队列实现会出现一个问题:可用范围因最大最小值队列(存在队头)的更改(出队,导致不可见)而缩小。如果单纯计算队列中覆盖的范围,就会漏掉一些区间。如这组数据: 当运行到数字“2”处时,单调队列(存下标)变成这样: 大:4 5 小:5 实际上,在2~5范围内的所有区间均有效。 (以 ...
分类:
其他好文 时间:
2019-05-02 20:11:26
阅读次数:
129
java并发包中提供了三个常用的并发队列实现,分别是:ConcurrentLinkedQueue、LinkedBlockingQueue和ArrayBlockingQueue。 ConcurrentLinkedQueue使用的是CAS原语无锁队列实现,是一个异步队列,入队速度很快,出队进行了加锁,性 ...
分类:
编程语言 时间:
2019-05-01 18:45:13
阅读次数:
155
深入理解Object提供的阻塞和唤醒API 前提 前段时间花了大量时间去研读JUC中同步器 的源码实现,再结合很久之前看过的一篇关于 提供的等待和唤醒机制的JVM实现,发现两者有不少的关联,于是决定重新研读一下 中提供的阻塞和唤醒方法。本文阅读JDK类库源码使用的JDK版本是JDK11,因为本文内容 ...
在图中实现最基本的操作之一就是搜索从一个指定顶点可以到达哪些顶点,比如从武汉出发的高铁可以到达哪些城市,一些城市可以直达,一些城市不能直达。现在有一份全国高铁模拟图,要从某个城市(顶点)开始,沿着铁轨(边)移动到其他城市(顶点),有两种方法可以用来搜索图:深度优先搜索(DFS)和广度优先搜索(BFS... ...
分类:
编程语言 时间:
2019-04-29 19:00:29
阅读次数:
160
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。压入元素时,都压入栈1,当需要弹出时,从栈2弹出,当栈2不为空时直接弹出栈顶元素,为空时将栈1的元素“倒进去”。 ...
分类:
其他好文 时间:
2019-04-18 16:45:43
阅读次数:
164
概述 java延迟队列提供了在指定时间才能获取队列元素的功能,队列头元素是最接近过期的元素。没有过期元素的话,使用poll()方法会返回null值,超时判定是通过getDelay(TimeUnit.NANOSECONDS)方法的返回值小于等于0来判断。延时队列不能存放空元素。 延时队列实现了Iter ...
分类:
编程语言 时间:
2019-04-10 13:49:49
阅读次数:
343
堆 1. (leetcode 703) 数据流中的第k大元素 利用小顶堆 栈 1. leetcode 20 有效的括号 2. (leetcode 155)最小栈 3. (leetcode 225) 队列实现栈 4. (leetcode 496) 下一个更大的元素 5. (leetcode 682) ...
分类:
其他好文 时间:
2019-04-09 20:36:32
阅读次数:
174
JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC( )包的时候引入了 ,Abstract Queued Synchronizer,也就是"基于队列实现的抽象同步器",一般我们称之为AQS。其实Doug Lea大神编写AQS是有严 ...
分类:
其他好文 时间:
2019-04-07 12:46:17
阅读次数:
139