class RangeIndex extends MultiValueIndex {

  @SuppressWarnings("unchecked")
  public List<Object> between(Object lowerBound, Object upperBound) {
    Set<Object> resultSet = new HashSet<Object>();
    NavigableMap<Object, Set<Object>> map = getMap();
    Entry<Object, Set<Object>> current = map.higherEntry(lowerBound);
    while (current != null
        && ((Comparable<Object>) current.getKey()).compareTo((Comparable<Object>) upperBound) < 0) {
      synchronized (current) {
        resultSet.addAll(current.getValue());
        current = map.higherEntry(current.getKey());
      }
    }
    return new ArrayList<Object>(resultSet);
  }

  public  RangeIndex();

}