Ключевое различие - TreeSet против HashSet
Большинство языков программирования поддерживают массивы. Это структура данных, которая используется для хранения нескольких элементов одного типа данных. Если объявлен массив для шести элементов, то его нельзя использовать для хранения десяти элементов. Следовательно, массивы не являются динамическими и не могут изменять размер массива после его объявления. Такие языки программирования, как Java, поддерживают Коллекции, которые используются для динамического хранения данных. Коллекции поддерживают такие операции, как добавление элементов и удаление элементов. В иерархии коллекций есть несколько интерфейсов и классов. Базовый интерфейс - это интерфейс коллекции. Set - это интерфейс, расширяющий интерфейс Collection. Это не допускает дублирования. TreeSet и HashSet - это два класса в иерархии Collection, и оба реализуют интерфейс Set. TreeSet - это класс, который реализует интерфейс Set и используется для хранения уникальных элементов в порядке возрастания. HashSet - это класс, который реализует интерфейс Set и используется для хранения уникальных элементов с помощью механизма хеширования. Ключевое различие между TreeSet и HashSet заключается в том, что TreeSet хранит элементы в порядке возрастания, в то время как HashSet не хранит элементы в порядке возрастания. И TreeSet, и HashSet хранят только уникальные элементы.
СОДЕРЖАНИЕ
1. Обзор и основные отличия
2. Что такое TreeSet
3. Что такое HashSet
4. Сходства между TreeSet и HashSet
5. Параллельное сравнение - TreeSet и HashSet в табличной форме
6. Резюме
Что такое TreeSet?
Класс TreeSet реализует интерфейс NavigableSet. Интерфейс NavigableSet расширяет интерфейсы SortedSet, Set, Collection и Iterable в иерархическом порядке. TreeSet всегда поддерживает порядок возрастания. Если элементы были вставлены в порядке B, A, C, они будут сохранены как A, B, C. Такие методы, как add (), remove (), можно использовать с объектом TreeSet. Метод add можно использовать для добавления элемента. Метод remove используется для удаления элемента из коллекции. Это некоторые методы, которые можно использовать с TreeSet.
Рисунок 01: Программа с TreeSet
Согласно приведенной выше программе создается объект типа TreeSet. Элементы строковых данных добавляются к этому объекту с помощью метода add. Порядок вставки данных: A, D, A, B, C, D. С помощью итератора сохраненные значения выводятся на экран. На выходе будут A, B, C, D. Несмотря на то, что есть две буквы A и две буквы D, на выходе отображается по одной A и по одной D. Следовательно, TreeSet хранит уникальные элементы. Нет определенного порядка вставки, но при просмотре вывода можно увидеть, что TreeSet поддерживает порядок возрастания элементов.
Что такое HashSet?
Класс HashSet расширяет класс AbstractSet, реализующий интерфейс Set. Интерфейс Set наследует интерфейсы Collection и Iterable в иерархическом порядке. В HashSet нет гарантии, что элементы будут поддерживать порядок возрастания и вставленный порядок. Если вставленный порядок был A, B, C, тогда значения могут сохраняться как C, A, B. Порядок хранения также может быть A, B, C, но нет гарантии, что вставленный порядок или возрастающий порядок сохранятся.
Рисунок 02: Программа с HashSet
Согласно приведенной выше программе создается объект типа HashSet. Элементы строковых данных добавляются к этому объекту с помощью метода add. Порядок вставки данных - L, R, M, M, R, L. Используя итератор, сохраненные значения выводятся на экран. Результатом будет RL M. Несмотря на то, что для каждой есть две буквы L, R и M, отображается только одна буква для каждой. Следовательно, HashSet хранит уникальные элементы. Наблюдая за выводом, можно увидеть, что порядок возрастания отсутствует или вставленный порядок сохраняется.
В чем сходство между TreeSet и HashSet?
- И TreeSet, и HashSet являются классами, принадлежащими иерархии коллекции.
- И TreeSet, и HashSet хранят только уникальные элементы.
- Как TreeSet, так и HashSet можно использовать для хранения многих элементов и управления ими.
- И TreeSet, и HashSet не поддерживают вставленный порядок.
В чем разница между TreeSet и HashSet?
Различать статью в середине перед таблицей
TreeSet против HashSet |
|
TreeSet - это класс в иерархии коллекции, который используется для хранения уникальных элементов в порядке возрастания. | HashSet - это класс в иерархии коллекции, который используется для хранения уникальных элементов с помощью механизма хеширования. |
Хранение элементов | |
TreeSet хранит элементы в порядке возрастания. | HashSet не хранит элементы в порядке возрастания. |
Резюме - TreeSet против HashSet
В программировании требуется динамическое хранение элементов данных. Языки программирования, такие как Java, поддерживают Коллекции для решения этой задачи. В иерархии коллекций есть несколько интерфейсов и классов. TreeSet и HashSet - это два класса в иерархии Collection. Оба реализуют интерфейс Set. TreeSet - это класс, который реализует интерфейс Set и используется для хранения уникальных элементов в порядке возрастания. HashSet - это класс, который реализует интерфейс Set и используется для хранения уникальных элементов с помощью механизма хеширования. Разница между TreeSet и HashSet заключается в том, что TreeSet хранит элементы в порядке возрастания, в то время как HashSet не хранит элементы в порядке возрастания. В этой статье обсуждалась разница между TreeSet и HashSet.