Разница между методами computeIfPresent и computeIfAbsent заключается в том, как они обрабатывают наличие значений в карте: 12
- computeIfAbsent позволяет вычислить значение и поместить его в карту, если там изначально ничего не было. 1 Если значение было и не равно null, то метод возвращает старое значение. 1
- computeIfPresent применяет функцию для существующего ключа и заменяет его значение. 1 Если функция вернула null, то значение нужно удалить. 1
Таким образом, в computeIfAbsent изначально значений не было, и они добавляются в карту, а в computeIfPresent значения уже были, и их модифицируют. 1