当前位置:  开发笔记 > 编程语言 > 正文

如何限制java哈希表中的条目数?

如何解决《如何限制java哈希表中的条目数?》经验,为你挑选了2个好方法。

是否有一种技术可以指定一个数字n,这样当插入第(n + 1)个条目时,首先删除最旧的条目,确保哈希表的大小始终限制为n?



1> Kristian..:

LinkedHashMap就是这样做的,请参阅removeEldestEntry方法的javadoc .

像这样的东西应该做的伎俩,这将删除最旧的插入条目:

Map map = new LinkedHashMap() {
    @Override
    protected boolean removeEldestEntry(Entry eldest) {
        return size() > N;
    }
};

您还可以通过在构造函数中指定它来删除最早访问的条目:

    Map map = new LinkedHashMap(16, 0.75f, true) {
        @Override
        protected boolean removeEldestEntry(Entry eldest) {
            return size() > N;
        }
    };



2> sblundy..:

您正在寻找LRU缓存吗?这是一篇基于LinkedHashMap的博客文章.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有