package org.jsirenia.defer;
import java.util.Map;
/***
* 第一次get的时候,调用初始化方法。
* @author zhoujiaping 2019-04-23
*
*/
public class LazyInitMap<K,V>{
private Map<K,V> map;
private boolean initialized;
private Initializer<K,V> initializer;
public interface Initializer<K,V>{
Map<K,V> init();
}
public LazyInitMap(Initializer<K,V> initializer){
if(initializer==null){
throw new RuntimeException("LazyMap构造器的initializer不能为空");
}
this.initializer = initializer;
}
public V get(K k){
if(!initialized){
synchronized(this){
if(!initialized){
map = initializer.init();
if(map==null){
throw new RuntimeException("LazyMap的initializer返回值不能为空");
}
initialized = true;
}
}
}
return map.get(k);
}
}
懒初始化的map
最新推荐文章于 2025-07-26 09:57:09 发布
本文介绍了一种使用懒加载技术的Map实现方式,该方式在首次获取元素时进行初始化,有效提高了资源利用效率。通过实现Initializer接口,可以在不访问时避免不必要的资源消耗。

559

被折叠的 条评论
为什么被折叠?



