>>254
それならもうDictionaryとListを二重に保持するしかないな。
例えばこんな感じ?

class MapWithList {
 Map map;
 List list;

 public void add(Object key, Object value) {
  map.put(key, value);
  list.add(key);
 }

 public Object getWithKey(Object key) {
  return map.get(key);
 }

 public Object getWithIndex(int i) {
  map.get(list.get(i));
 }
}

テストコンパイルしてないから実際に使えるか知らんが、
ようはこういうことがしたいんじゃない?