- Проверить, содержится ли запись на карте
- Если она присутствует, запустить действие (я думаю о BiConsumer, принимающем ключ и его значение)
- В противном случае запустить другое действие (Потребитель, который принимает отсутствующий ключ)
if (map.containsKey(key)) {
V value = map.get(key);
ifPresentAction.accept(key, value);
} else {
ifAbsentAction.accept(key);
}
где карта имеет тип ConcurrentMap, ключ имеет тип K, а ifPresentAction и ifAbsentAction являются соответственно BiConsumer и Consumer.
Дополнительная информация
Я думал о вызовеOptional.ifPresentOrElse (с правильными типами), но не уверен, что это будет потокобезопасно.
Optional.ofNullable(map.get(key))
.ifPresentOrElse(ifPresentAction, ifAbsentAction);
Подробнее здесь: https://stackoverflow.com/questions/798 ... -it-with-a
Мобильная версия