Все три класса имплементируют интерфейс java.util.Map. Но в каждой реализации есть всякие "плюшечки":
- HashMap - не дает никаких гарантий по поводу порядка итерации по элементам. Скорость доступа: O(1).
- LinkedHashMap - итерация по элементам в том же порядке, в котором они были вставлены в коллекцию, т.е. в insertion order. Скорость доступа: O(1).
- TreeMap - держит коллекцию отсортированной по ключам (используется либо метод compareTo() либо предоставленный компаратор), поэтому итерация по элементам будет в порядке сортировки по ключам - natural ordering. Скорость доступа: O(log(n)).
>>TreeMap - держит коллекцию отсортированной по ключам (используется либо метод compareTo() либо предоставленный компаратор), поэтому итерация по элементам будет в порядке сортировки по ключам - natural ordering<<
ОтветитьУдалитьнесколько размыто написано, Tree - означает что информация хранится в поисковом дереве (говорить что она “держится отсортированной” как-то неправильно, как будто подразумевается её хранение в списке а не в дереве). Одна из особенностей подобного хранения заключается в простоте алгоритма (рекурсивный по духу) который способен вывести сохранённые элементы в порядке не убывания.
Короче не стесняйтесь написать чуточку больше и точнее, blogspot это ж не твиттер :)
прежде всего каждая реализация имеет свою сложность поиска элементов - HashMap/LinkedHashMap - O(1), тогда как TreeMap - O(log(N))
ОтветитьУдалитьСпасибо, поправил!
ОтветитьУдалить