限制Map大小的实现方法
来源:互联网 发布:数据分析导论 编辑:程序博客网 时间:2024/05/21 13:06
需求:
有时候需要往一个MAP中写入一些记录,但又怕无限制地写入会导致内存爆掉,所以得限制这个MAP的大小。
实现:LinkedHashMap提供了简单的方法。
首先,定义一个最大数,比如1000,然后new LinkedHashMap的时候,重写一下removeEldestEntry()方法:
int maximumSize = 1000;LinkedHashMap<K, String> myMap= new LinkedHashMap<K, String>() {private static final long serialVersionUID = 1L;@Override protected boolean removeEldestEntry(Map.Entry<K, String> eldest) { return size() > maximumSize; } };
这样,每当调用myMap.put()的时候,就会自动判断是否个数已经超过maximumSize,如果超过就删掉最旧的那条(相当于是FIFO算法)。
LinkedHashMap添加记录的源代码如下:
/** * This override alters behavior of superclass put method. It causes newly * allocated entry to get inserted at the end of the linked list and * removes the eldest entry if appropriate. */ void addEntry(int hash, K key, V value, int bucketIndex) { super.addEntry(hash, key, value, bucketIndex); // Remove eldest entry if instructed Entry<K,V> eldest = header.after; if (removeEldestEntry(eldest)) { removeEntryForKey(eldest.key); } }
0 0
- 限制Map大小的实现方法
- 在delphi中限制Form大小的实现方法
- 限制apache日志大小的方法
- 限制文件夹大小的一种方法
- 在代码中如何限制一个Map的大小
- javascript实现限制上传文件的大小
- javascript实现限制上传文件的大小
- javascript实现限制上传文件的大小
- 如何在wordpress上增加文件上传的大小限制(多种实现方法)
- 限制上传大小的
- JAVASCRIPT弹出窗口限制大小的几种方法
- 对话框添加“WM_GETMINMAXINFO”的方法,来限制对话框大小
- linux下限制一个文件夹大小的方法
- 实现有大小限制的并发阻塞队列
- 简单LRU算法实现缓存大小的限制策略
- 使用js实现上传图片的大小限制
- js实现的map方法
- Windows 的窗口大小限制
- JAVA程序员成长之路
- 配置MongoDB3.04集群分片
- PAT_乙级1001
- 匈牙利算法
- Hive JOIN使用详解
- 限制Map大小的实现方法
- Swift语法_Unicode
- ubuntu使用技巧——如何编译C++和C语言的使用程序
- UILocalNotification
- session和cookie的区别
- ORACLE PILE 与 SPFILE
- Java笔记--Session:避免表单的重复提交
- Thinkphp结合PHPMailer发邮件
- 关于函数strtok和strtok_r的使用要点和实现原理(一)