static C nestedMapRemove(Map> map, A a, B b) { if (map == null) null; Map map2 = map.get(a); if (map2 == null) null; C oldValue = map2.remove(b); if (empty(map2)) map.remove(a); ret oldValue; }