change capacity

This commit is contained in:
Looly 2020-03-24 17:43:58 +08:00
parent 1497c430da
commit 2e9e174594
3 changed files with 11 additions and 15 deletions

View File

@ -10,6 +10,7 @@
* 【core 】 增加CityHash算法
* 【core 】 PageUtil支持setFirstPageNo自定义第一页的页码issue#I1CGNZ@Gitee
* 【http 】 UserAgentUtil增加Chromium内核的Edge浏览器支持issue#800@Github
* 【cache 】 修改FIFOCache中linkedHashMap的初始容量策略pr#801@Github
### Bug修复
* 【core 】 修复NumberWordFormatter拼写错误issue#799@Github

View File

@ -12,10 +12,9 @@ import java.util.LinkedHashMap;
* 缺点不灵活不能保证最常用的对象总是被保留
* </p>
*
* @author Looly
*
* @param <K> 键类型
* @param <V> 值类型
* @author Looly
*/
public class FIFOCache<K, V> extends AbstractCache<K, V> {
private static final long serialVersionUID = 1L;
@ -33,16 +32,12 @@ public class FIFOCache<K, V> extends AbstractCache<K, V> {
* 构造
*
* @param capacity 容量
* @param timeout 过期时长
* @param timeout 过期时长
*/
public FIFOCache(int capacity, long timeout) {
if(Integer.MAX_VALUE == capacity) {
capacity -= 1;
}
this.capacity = capacity;
this.timeout = timeout;
cacheMap = new LinkedHashMap<>(capacity + 1, 1.0f, false);
cacheMap = new LinkedHashMap<>(Math.max(1 << 4, capacity >>> 7), 1.0f, false);
}
/**

View File

@ -1,9 +1,9 @@
package cn.hutool.cache.impl;
import java.util.Iterator;
import cn.hutool.core.map.FixedLinkedHashMap;
import java.util.Iterator;
/**
* LRU (least recently used)最近最久未使用缓存<br>
* 根据使用时间来判定对象是否被持续缓存<br>
@ -42,7 +42,7 @@ public class LRUCache<K, V> extends AbstractCache<K, V> {
this.timeout = timeout;
//链表key按照访问顺序排序调用get方法后会将这次访问的元素移至头部
cacheMap = new FixedLinkedHashMap<K, CacheObj<K, V>>(capacity);
cacheMap = new FixedLinkedHashMap<>(capacity);
}
// ---------------------------------------------------------------- prune