Вопрос проверяет знание различий между реализациями Map и работы с упорядоченными коллекциями.
Основные отличия:
HashMap - неупорядоченная, TreeMap - сортированная по ключам
HashMap - O(1) доступ, TreeMap - O(log n)
TreeMap использует Comparator или естественный порядок
Сравнение:
HashMap - отсутствует порядок, сложность О(1), есть Null-ключи
TreeMap - сортировка по ключам, сложность О(log(n)), Null-ключи отсутствуют
Управление порядком в TreeMap:
Естественный порядок (ключи реализуют Comparable)
TreeMap<String, Integer> map = new TreeMap<>(); // Сортировка StringЧерез Comparator:
Comparator<String> reverse = (a, b) -> b.compareTo(a);
TreeMap<String, Integer> map = new TreeMap<>(reverse);