import java.util.*;
public class CustomSortedMap
private final TreeMap
public CustomSortedMap(Comparator super K> comparator) {
this.treeMap = new TreeMap<>(comparator);
}
// Implementing all methods required by SortedMap interface
@Override
public Comparator super K> comparator() {
return treeMap.comparator();
}
@Override
public SortedMap
return treeMap.subMap(fromKey, toKey);
}
@Override
public SortedMap
return treeMap.headMap(toKey);
}
@Override
public SortedMap
return treeMap.tailMap(fromKey);
}
@Override
public K firstKey() {
return treeMap.firstKey();
}
@Override
public K lastKey() {
return treeMap.lastKey();
}
@Override
public Set
return treeMap.keySet();
}
@Override
public Collection
return treeMap.values();
}
@Override
public Set
return treeMap.entrySet();
}
@Override
public V put(K key, V value) {
return treeMap.put(key, value);
}
@Override
public V get(Object key) {
return treeMap.get(key);
}
@Override
public V remove(Object key) {
return treeMap.remove(key);
}
@Override
public void putAll(Map extends K, ? extends V> m) {
treeMap.putAll(m);
}
@Override
public void clear() {
treeMap.clear();
}
@Override
public int size() {
return treeMap.size();
}
@Override
public boolean isEmpty() {
return treeMap.isEmpty();
}
@Override
public boolean containsKey(Object key) {
return treeMap.containsKey(key);
}
@Override
public boolean containsValue(Object value) {
return treeMap.containsValue(value);
}
}