Объединение Java-карты с computeIfAbsent и computeIfPresent - PullRequest
0 голосов
/ 18 октября 2018

Я использовал метод вычисления, а также метод слияния.Однако я до сих пор не уверен, чем метод слияния отличается от методов вычисления.

В интервью мне задали вопрос, чтобы сохранить счетчик посещений для данного списка IP-адресов.Это была базовая реализация Map, в которой ключ - это IP, а значение - количество обращений.

Я реализовал его с помощью метода computeIfAbsent, но этого было недостаточно, когда присутствует ключ, поэтому мне пришлось изменить реализацию наиспользовать метод слияния.

Можно ли сказать, что слияние эквивалентно использованию обоих методов вычисления одновременно?

1 Ответ

0 голосов
/ 18 октября 2018

Ну да, логически это так, можно сказать, что это эквивалентно:

merge(){
   computeIfAbsent(...)
   computeIfPresent(...)
}

, но, конечно, они имеют разные реализации

...