Эта часть в документах API одинакова как для TreeMap, так и для ConcurrentSkipListMap.
Карта сортируется в соответствии с естественным упорядочением ее ключей или с помощью компаратора, предоставленного во время создания карты, в зависимости откакой конструктор используется.
Идеологически ConcurrentSkipListMap (являющийся NavigableMap) должен быть отсортирован (и, таким образом, внутренне поддерживать порядок), как TreeMap.Не будучи сопоставимым (если мы не указываем никакого специального компаратора в конструкторе), ConcurrentSkipListMap не может постоянно поддерживать какой-либо порядок.
Но в отличие от TreeMap, ConcurrentSkipListMap не выдает исключение, если ему дан несопоставимый ключ!Это меня озадачивает, почему:
TreeMap<ArrayList, Integer> m = new TreeMap<>();
m.put(new ArrayList(), 6); // throws ClassCastException - ArrayList not Comparable
ConcurrentSkipListMap<ArrayList, Integer> lst = new ConcurrentSkipListMap<>();
lst.put(new ArrayList(), 6); // fine!