linkedhashmap实现lru时遇到的问题

看了一些高浏览转载的博客,大部分都说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());
        }
    }
}

linkedhashmap实现lru时遇到的问题
并且直接map.put(1,2);会在原位置上进行改动。
linkedhashmap实现lru时遇到的问题

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

linkedhashmap实现lru时遇到的问题

上一篇:SQL Server 2008 R2占用内存越来越大两种解决方法


下一篇:查找月份新②(运用不遇到break不停止的特点进行简化!)