sclass LinkedTreeMap_simple {
Map map;
new L list;
*() { map = new TreeMap; }
*(Map *map) {}
public B get(Object key) {
ret map.get(key);
}
public B put(A key, B value) {
if (!map.containsKey(key))
list.add(key);
return map.put(key, value);
}
public bool containsKey(O key) {
ret map.containsKey(key);
}
public ItIt keyIterator() {
ret iterator(list);
}
public ItIt entryIterator() {
ret mapI(keyIterator(), a -> new Map.Entry() {
public A getKey() { ret a; }
public B getValue() { ret map.get(a); }
});
}
}