![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java集合类
汉尼博
这个作者很懒,什么都没留下…
展开
-
LinkedHashMap实现有序的原理
LinkedHashMap采用的hash算法和HashMap相同,但是它重新定义了数组中保存的元素Entry,该Entry除了保存当前对象的引用外,还保存了其上一个元素before和下一个元素after的引用,从而在哈希表的基础上又构成了双向链接列表。这样就能按照插入的顺序遍历原本无序的HashMap了,是不是很方便?看源代码:/** * 双向链表的表头元素。 */ priv...原创 2019-02-11 21:56:04 · 2479 阅读 · 0 评论 -
TreeMap实现有序的原理
上一篇讲了LinkedHashMap实现有序的原理,这票介绍一个另一种有序的Map,TreeMap。同样是有序,两者大不一样,LinkedHashMap是按照插入顺序排序,而TreeMap是按照Key的自然顺序或者Comprator的顺序进行排序。在实现原理上LinkedHashMap是双向链表,TreeMap是红黑树。TreeMap还有个好兄弟叫TreeSet,实现原理是一样的。这是...原创 2019-02-13 14:07:52 · 16734 阅读 · 7 评论 -
PriorityQueue的用法和底层实现原理
先讲使用,再讲原理队列是遵循先进先出(First-In-First-Out)模式的,但有时需要在队列中基于优先级处理对象。举两个例子:作业系统中的调度程序,当一个作业完成后,需要在所有等待调度的作业中选择一个优先级最高的作业来执行,并且也可以添加一个新的作业到作业的优先队列中。 每日交易时段生成股票报告的应用程序中,需要处理大量数据并且花费很多处理时间。客户向这个应用程序发送请求时,...原创 2019-02-13 22:17:37 · 103483 阅读 · 16 评论 -
interface可以多继承吗
几天前被一个面试官虐成狗,上来问住我的第一个问题是,interface1 extends interface2,interface3这种写法对吗。我有点懵逼,之前确实在java集合类源码里看到过这种写法但是忘记了,然后就呵呵了。java明明说好的不支持多继承,class可以通过implement多个Interface来间接实现多继承,但是Interface怎么implements多个接口呢。这是个...原创 2019-02-26 10:54:43 · 1243 阅读 · 0 评论