There is no exact equivalent, but the usual approach looks something like this:
ConcurrentMap<Key,Value> map = ...
Value computeIfAbsent(Key k) {
Value v = map.get(k);
if (v == null) {
Value vNew = new Value(...);
v = (v = map.putIfAbsent(k, vNew)) == null ? vNew : v;
}
return v;
}
computeIfAbsent Java 8, , Value - . - - Value , Value *, .
, , , get() putIfAbsent. , , computeIfAbsent , . 5 , , .
, ( , , ), Guava CacheBuilder LoadingCache. , , Java 8 CHM, .