nit: you could use the shorthand syntax:

```
  V putIfAbsent(K key, V ifAbsent()) => _map.containsKey(key)
    ? _map[key]
    : _add(key, ifAbsent(), false);
```