Я рассмотрел реализацию карты карт в Java и заметил чрезмерное использование синхронизации: [code]public class NestedMap { private Map data = new ConcurrentHashMap();
synchronized public V put(K1 k1, K2 k2, V v) { Map map = data.computeIfAbsent(k1, key -> new ConcurrentHashMap()); return map.put(k2, v); }
synchronized public V get(K1 k1, K2 k2) { Map map = data.get(k1); if (null == map) return null; return map.get(k2); }
synchronized public V remove(K1 k1, K2 k2) { Map map = data.get(k1); if (null == map) return null; return map.remove(k2); }
synchronized public void remove(K1 k1) { data.remove(k1); }
synchronized public Map get(K1 k1) { return this.data.get(k1); }
synchronized public V computeIfAbsent(K1 k1, K2 k2, Function