java 怎么限制Map的大小啊?????
展开全部
为什么有这样的需求?好像系统自带的Map并没有这总操作,你需要大概只能自己重写一个Map
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在JDK中提供了一个相当用价值的主要用于缓存的Map实现—— LinkedHashMap 。
LinkedHashMap的迭代顺序就是最后访问其条目的顺序,从近期访问最少到近期访问最多的顺序。
详情可参考JKD中关于LinkedHashMap 的API文档。
你需要做的就是继承LinkedHashMap 并重写removeEldestEntry方法。
示例如下:
1
2
3
4
5
6
private static final int MAX_ENTRIES = 100;
protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
// 当前记录数大于设置的最大的记录数,删除最旧记录(即最近访问最少的记录)
return size() > MAX_ENTRIES;
}
LinkedHashMap的迭代顺序就是最后访问其条目的顺序,从近期访问最少到近期访问最多的顺序。
详情可参考JKD中关于LinkedHashMap 的API文档。
你需要做的就是继承LinkedHashMap 并重写removeEldestEntry方法。
示例如下:
1
2
3
4
5
6
private static final int MAX_ENTRIES = 100;
protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
// 当前记录数大于设置的最大的记录数,删除最旧记录(即最近访问最少的记录)
return size() > MAX_ENTRIES;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询