java基础LinkedHashMap原理
详情见博客这里先记录一下基本原理。
在LinkedHashMapMap中,所有put进来的Entry都保存在如下面第一个图所示的哈希表中,但由于它又额外定义了一个以head为头结点的双向链表(如下面第二个图所示),因此对于每次put进来Entry,除了将其保存到哈希表中对应的位置上之外,还会将其插入到双向链表的尾部。
更直观地,下图很好地还原了LinkedHashMap的原貌:HashMap和双向链表的密切配合和分工合作造就了LinkedHashMap。特别需要注意的是,next用于维护HashMap各个桶中的Entry链,before、after用于维护LinkedHashMap的双向链表,虽然它们的作用对象都是Entry,但是各自分离,是两码事儿。
其中,HashMap与LinkedHashMap的Entry结构示意图如下图所示:
一线大厂是如何开发微信小程序的?掘金开发者大会 ∙ 干货满满
作者:lww嘀嗒
链接:https://juejin.im/post/5a6f3c4af265da3e3c6c6ca5
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。