// elements are put to front when added (not when accessed) sclass MRUCache extends LinkedHashMap { int maxSize = 10; *() {} *(int *maxSize) {} protected bool removeEldestEntry(Map.Entry eldest) { ret size() > maxSize; } O _serialize() { ret ll(maxSize, cloneLinkedHashMap(this)); } void _deserialize(L l) { maxSize = (int) first(l); putAll((LinkedHashMap) second(l)); } }