import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
public class SmartCache<K, V> {
private Map<K, V> cache = new HashMap<>();
public V getOrElse(K key, Function<K, V> loader) {
if (cache.containsKey(key)) {
System.out.println("[Cache] Взято из кэша для ключа: " + key);
return cache.get(key);
}
System.out.println("[Cache] Ключ '" + key + "' не найден. Загружаем данные...");
V value = loader.apply(key);
cache.put(key, value);
return value;
}
}