throws Throwable
  public void sort(Comparator<Map.Entry<Value, Value>> comparator,                   boolean resetKeys, boolean strict)    throws Throwable  {    Entry []entries;    entries = new Entry[getSize()];    int i = 0;    for (Entry entry = getHead(); entry != null; entry = entry._next) {      entries[i++] = entry;    }    Arrays.sort(entries, comparator);    clear();    long base = 0;    if (! resetKeys)      strict = false;    for (int j = 0; j < entries.length; j++) {      Value key = entries[j].getKey();      if (resetKeys && (! (key instanceof StringValue) || strict))        put(LongValue.create(base++), entries[j].getValue());      else        put(entries[j].getKey(), entries[j].getValue());    }  }