Package org.miaixz.bus.core.cache
Class SimpleCache<K,V>
java.lang.Object
org.miaixz.bus.core.cache.SimpleCache<K,V>
- Type Parameters:
K- 键类型V- 值类型
- All Implemented Interfaces:
Serializable,Iterable<Map.Entry<K,V>>
简单缓存,无超时实现,默认使用
WeakConcurrentMap实现缓存自动清理- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()清空缓存池booleancontainsKey(K key) 是否包含键从缓存池中查找值从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象iterator()keys()获取所有键放入缓存移除缓存Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
keyLockMap
写的时候每个key一把锁,降低锁的粒度
-
-
Constructor Details
-
SimpleCache
public SimpleCache()构造,默认使用WeakHashMap实现缓存自动清理 -
SimpleCache
构造通过自定义Map初始化,可以自定义缓存实现。 比如使用
WeakHashMap则会自动清理key,使用HashMap则不会清理 同时,传入的Map对象也可以自带初始化的键值对,防止在get时创建- Parameters:
initMap- 初始Map,用于定义Map类型
-
-
Method Details
-
containsKey
是否包含键- Parameters:
key- 键- Returns:
- 是否包含
-
get
从缓存池中查找值- Parameters:
key- 键- Returns:
- 值
-
get
从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象- Parameters:
key- 键supplier- 如果不存在回调方法,用于生产值对象- Returns:
- 值对象
-
get
从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象- Parameters:
key- 键validPredicate- 检查结果对象是否可用,如是否断开连接等supplier- 如果不存在回调方法或结果不可用,用于生产值对象- Returns:
- 值对象
-
put
放入缓存- Parameters:
key- 键value- 值- Returns:
- 值
-
remove
移除缓存- Parameters:
key- 键- Returns:
- 移除的值
-
clear
public void clear()清空缓存池 -
iterator
-
keys
获取所有键- Returns:
- 所有键
-