Отличие методов computeIfPresent и computeIfAbsent в HashMap заключается в том, что они выполняют разные операции:
- computeIfPresent позволяет обновить значение указанного ключа в карте, если он присутствует. 3 Если ключа нет, метод ничего не делает. 3
- computeIfAbsent принимает ключ в качестве аргумента и возвращает значение, связанное с этим ключом, если оно существует, или вычисляет и вставляет значение, связанное с ключом, с помощью предоставленной функции, если его нет. 3
Таким образом, computeIfPresent работает, когда ключ уже был добавлен в коллекцию, а computeIfAbsent — когда ключа в коллекции до этого не было. 2