Разлика между TreeSet и HashSet

Съдържание:

Разлика между TreeSet и HashSet
Разлика между TreeSet и HashSet

Видео: Разлика между TreeSet и HashSet

Видео: Разлика между TreeSet и HashSet
Видео: Урок 21 - TreeSet (прокачанная Java) 2024, Ноември
Anonim

Ключова разлика – TreeSet срещу HashSet

Повечето езици за програмиране поддържат масиви. Това е структура от данни, която се използва за съхраняване на множество елементи от един и същи тип данни. Ако има деклариран масив за шест елемента, той не може да се използва за съхраняване на десет елемента. Следователно масивите не са динамични и не могат да променят размера на масива, след като бъде деклариран. Програмни езици като Java поддържат колекции, които се използват за динамично съхраняване на данни. Колекциите поддържат операции като добавяне на елементи и изтриване на елементи. В йерархията на колекцията има редица интерфейси и класове. Базовият интерфейс е интерфейсът на колекцията. Set е интерфейс, който разширява интерфейса на Collection. Не позволява дублиране. TreeSet и HashSet са два класа в йерархията на колекцията и двата имплементират интерфейса Set. TreeSet е клас, който имплементира интерфейса Set и се използва за съхраняване на уникални елементи във възходящ ред. HashSet е клас, който имплементира интерфейса Set и се използва за съхраняване на уникални елементи чрез механизма за хеширане. Ключовата разлика между TreeSet и HashSet е, че TreeSet съхранява елементите във възходящ ред, докато HashSet не съхранява елементите във възходящ ред. И TreeSet, и HashSet съхраняват само уникални елементи.

Какво е TreeSet?

Клас TreeSet имплементира интерфейс NavigableSet. Интерфейсът NavigableSet разширява интерфейсите SortedSet, Set, Collection и Iterable в йерархичен ред. TreeSet винаги поддържа възходящ ред. Ако елементите са били вмъкнати в ред B, A, C, те ще бъдат съхранени като A, B, C. Методите като добавяне (), премахване () могат да се използват с обект TreeSet. Методът add може да се използва за добавяне на елемент. Методът за премахване се използва за премахване на елемент от колекцията. Това са някои методи, които могат да се използват с TreeSet.

Разлика между TreeSet и HashSet
Разлика между TreeSet и HashSet

Фигура 01: Програмиране с TreeSet

Съгласно горната програма се създава обект от тип TreeSet. Елементите с низови данни се добавят към този обект с помощта на метода add. Редът на вмъкнати данни е A, D, A, B, C, D. С помощта на итератора съхранените стойности се отпечатват на екрана. Изходът е A, B, C, D. Въпреки че има две букви A и две букви D, изходът показва една A и една D всяка. Следователно TreeSet съхранява уникални елементи. Няма определен ред на вмъкване, но при наблюдение на изхода може да се види, че TreeSet поддържа възходящ ред на елементите.

Какво е HashSet?

Класът HashSet разширява класа AbstractSet, който имплементира Set Interface. Интерфейсът Set наследява Collection и Iterable интерфейси в йерархичен ред. В HashSet няма гаранция, че елементите ще поддържат възходящия ред и вмъкнатия ред. Ако вмъкнатият ред е A, B, C, тогава стойностите може да се съхраняват като C, A, B. Редът на съхранение може също да бъде A, B, C, но няма гаранция, че вмъкнатият ред или възходящият ред се запазват.йени

Ключова разлика между TreeSet и HashSet
Ключова разлика между TreeSet и HashSet

Фигура 02: Програма с HashSet

Съгласно горната програма се създава обект от тип HashSet. Елементите с низови данни се добавят към този обект с помощта на метода add. Редът на вмъкнати данни е L, R, M, M, R, L. С помощта на итератора съхранените стойности се отпечатват на екрана. Изходът е R L 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 са два класа в йерархията на колекцията. И двете изпълняват интерфейса Set. TreeSet е клас, който имплементира интерфейса Set и се използва за съхраняване на уникални елементи във възходящ ред. HashSet е клас, който имплементира интерфейса Set и се използва за съхраняване на уникални елементи чрез механизма за хеширане. Разликата между TreeSet и HashSet е, че TreeSet съхранява елементите във възходящ ред, докато HashSet не съхранява елементите във възходящ ред. Тази статия обсъжда разликата между TreeSet и HashSet.

Препоръчано: