static class CombinedMap extends AbstractMap { new L> maps; *() {} *(Map... maps) { addAllNonNulls(this.maps, maps); } > *(Collection maps) { addAllNonNulls(this.maps, maps); } public int size() { ret lengthLevel2_maps(maps); } public Set> entrySet() { fail(); } public bool containsKey(O o) { for (Map map : maps) if (map.containsKey(o)) true; false; } @Override public B get(O o) { for (Map map : maps) if (map.containsKey(o)) ret map.get(o); null; } }