本文共 770 字,大约阅读时间需要 2 分钟。
数据结构支持: 双向循环链表
1,在LinkedHashMap的初始化过程添加一个dumy的header双向链表头
before(header)<----header --->after(header)
before(header)<----header --->after(header)
header<----entry1---->entry2---->header--->entry1
新插入的元素总是放在header之前,而header的after总是总早放入链表中的那个元素entry1
4. 当其中一个entry3被访问时,将entry3从原位置删除并移动到header之前
header<----entry1---->entry2---->entry3----->entry4---->header--->entry1
header<----entry1---->entry2----->entry4---->header--->entry1
header<----entry1---->entry2---->entry4----->entry3---->header--->entry1
删除header.after即entry1并重新指向entry1的after。
header<-----entry2---->entry4----->entry3---->header--->entry2
请参照addToHead以及recordAccess
转载地址:http://wqdmi.baihongyu.com/