Bla*_*lah 12 java fifo linkedhashmap data-structures
LinkedHashMap是LIFO还是FIFO的性质?如果我的地图是形式 - >
map.put(1,"one");
map.put(2,"two");
Run Code Online (Sandbox Code Playgroud)
如果我要使用keyset在地图上迭代,那将是什么命令?
编辑:我认为我确实混淆了两个不同的概念.我重新解释了这个问题.我使用entryset遇到数量的顺序是什么?感谢指出btw.i donot打算删除任何条目.
Ósc*_*pez 13
在链接的哈希映射中,后端双向链表中的元素在末尾添加(显然:用于保留迭代顺序),但是当元素从地图中删除时,可以从列表中的任何部分中删除它,这是不正确的将后备列表(以及扩展名:地图)标记为LIFO或FIFO,它既不是 - 在映射中没有删除顺序的概念,因此不能为链接的哈希映射中的后备列表假定删除顺序.
链接散列映射确实保证迭代其内容(无论是:键还是条目)将按照在映射中插入元素的相同顺序进行; 从文件:
此实现与HashMap的不同之处在于它维护了一个贯穿其所有条目的双向链表.此链接列表定义迭代排序,通常是键插入映射的顺序(插入顺序).
编辑:
关于问题的最后一次编辑,LinkedHashMap 保证迭代顺序与keySet()插入元素的顺序相同:1, 2对于问题中的示例.这与FIFO/LIFO无关,这些概念处理从数据结构中删除元素的顺序,并且在插入元素后它们与迭代顺序无关.
| 归档时间: |
|
| 查看次数: |
20224 次 |
| 最近记录: |