Vorrei davvero usare Map.computeIfAbsent ma è passato troppo tempo da quando lambda in undergrad.
Quasi direttamente dalla documentazione: fornisce un esempio del vecchio modo di fare le cose:
Map<String, Boolean> whoLetDogsOut = new ConcurrentHashMap<>();
String key = "snoop";
if (whoLetDogsOut.get(key) == null) {
Boolean isLetOut = tryToLetOut(key);
if (isLetOut != null)
map.putIfAbsent(key, isLetOut);
}
E il nuovo modo:
map.computeIfAbsent(key, k -> new Value(f(k)));
Ma nel loro esempio, penso di non "capirlo". Come trasformerei il codice per usare il nuovo modo lambda di esprimerlo?