Обычно (т.е.. Не одновременно), putAll()
не может быть более эффективным, чем использование Лота звонков put()
, даже если предположить, что вы исключите затраты на строительство другой карты, которые вы передаете в putAll()
. Это связано с тем, что putAll()
необходимо будет перебирать пройденные элементы карты, а также запускать алгоритм для добавления каждой пары значений ключа к карте, выполняемой put()
.ConcurrentHashMap и putAll() метод
Но для ConcurrentHashMap имеет смысл создать обычную карту, а затем использовать putAll()
для ее обновления? Или я должен просто сделать 10 (или 100 или 1000) звонков на put()
?
Выполняется ли ответ для нескольких вызовов на putIfAbsent()
?
Спасибо!
Вы даже используете потоки для заполнения ConcurrentHashMap? Если нет, то не будет никакой разницы между putAll() или 100 последовательными put() – jitter
Да, (по крайней мере) один поток записывает в ConcurrentHashMap, и из него читают несколько потоков. – Rudiger
PutAll() похож на автоматизированный процесс добавления нескольких элементов в CHM, чем делать это самостоятельно один за другим. – AKS