public V put(K key, V value) {
Entry<K,V> t = root;
if (t == null) {
compare(key, key); // type (and possibly null) check
root = new Entry<>(key, value, null);
size = 1;
modCount++;
return null;
}
int cmp;
...
}
final int compare(Object k1, Object k2) {
return comparator==null ? ((Comparable<? super K>)k1).compareTo((K)k2)
: comparator.compare((K)k1, (K)k2);
}
После столкновения с некоторой ошибкой в моем приложении мне пришлось отлаживать метод TreeMaps put. Моя проблема заключалась в сравнении объектов, которые были помещены на карту. Что странно, так это то, что когда я помещаю на карту FIRST, ключ становится по сравнению с самим собой. Я не могу понять, почему это будет так. Любая информация (помимо прокомментированного типа) (и, возможно, null) check ")? Почему бы им просто не проверить, был ли ключ пустым? Какой вид «типа» проверяется и зачем?TreeMap java implementation - put 1st element
Здесь вы можете найти еще несколько объяснений: http://bugs.java.com/view_bug.do?bug_id=5045147 – Koekje