Вот заголовок реализации Java TreeMap (1.8_071):Почему Java позволяет ключи TreeMap и значения TreeSet не сопоставимы?
public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, java.io.Serializable
Почему нет никаких ограничений, как это:
public class TreeMap<K extends Comparable<?>,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, java.io.Serializable