// TODO: make persistable sclass MRUAndAllTimeTop { new MRUCache mru; // most recently used new MultiSet allTimeTop; // interleave latest and most often accessed elements ItIt mixedIterator() { ret roundRobinCombinedIterator( reversedIterator(asArrayList(mru)), iterator(allTimeTop.highestFirst())); } }