Если вы планируете вставлять новые элементы в подавляющем большинстве случаев.
ValType temp = map.put(key, val);
if(temp != null)
map.put(key, temp);
Я не думаю, что в целом это хорошая идея, но стоит подумать, можете ли вы достаточно рассуждать о своем случае использования.
Подумайте над этим, если вы можете использовать конкретную реализацию карты вместо интерфейса карты, вы можете сделать это с помощью NavigableMap
Map sub = map.subMap(key, true, key, true);
if (!sub.contains(key)) {
sub.put(key, val);
}
Поскольку поддерево будет иметь размер 0 или 1 узел, повторной работы не будет.