Читая интересные статьи, ребята утверждают, что разница между двумя функциями:
Обе функции стремятся добавить элемент, если указанный ключ не является уже присутствующих на карте.
putIfAbsent добавляет элемент с указанным значением, тогда как computeIfAbsent добавляет элемент со значением, вычисленным с помощью ключа. http://www.buggybread.com/2014/10/java-8-difference-between-map.html
И
Мы видели, что putIfAbsent устраняет императивный способ иметь определить if-statement, но что, если выборка статей Java действительно вредит нашей работе?
Чтобы оптимизировать это, мы не хотим получать статьи до тех пор, пока действительно уверены, что они нам нужны - это означает, что нам нужно знать, является ли ключ отсутствует перед тем, как выучить статьи. http://www.deadcoderising.com/2017-02-14-java-8-declarative-ways-of-modifying-a-map-using-compute-merge-and-replace/
Я не был готов понять, в чем отличия, вы можете подробнее рассказать об этих двух функциях?