sclass Splitter2 { new HashMap> map; // may return null if unknown B get(A a) { MultiSet ms = map.get(a); ret ms == null ? null : ms.getMostPopularEntry(); } void learn(A a, B b) { MultiSet ms = map.get(a); if (ms == null) map.put(a, ms = new MultiSet); ms.add(b); } void clear { map.clear(); } }