ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

linkedhashmap实现lru时遇到的问题

2021-09-12 17:33:35  阅读:150  来源: 互联网

标签:map Map int 遇到 lru LinkedHashMap put entry linkedhashmap


看了一些高浏览转载的博客,大部分都说map.get(1);会改变map中的顺序,经实践发现不会改变。

import java.util.LinkedHashMap;
import java.util.Map;

class Map1 {
    public static void main(String[] args) {
        Map<Integer,Integer> map = new LinkedHashMap<>();
        for (int i = 0; i < 10; i++) {
            map.put(i,i);
        }
        int i = map.get(1);  // ***
        for (Map.Entry<Integer,Integer> entry: map.entrySet()
             ) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

第10行的gei不会改变map中的顺序
并且直接map.put(1,2);会在原位置上进行改动。
在这里插入图片描述

只有先remove,再putmap.remove(1); map.put(1,2);才会改动位置。

在这里插入图片描述

标签:map,Map,int,遇到,lru,LinkedHashMap,put,entry,linkedhashmap
来源: https://blog.csdn.net/qq_40594032/article/details/120252967

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有