Повечето езици за програмиране поддържат масиви. Това е структура от данни, която се използва за съхранение на няколко елемента от един и същ тип данни. Ако има деклариран масив за шест елемента, той не може да се използва за съхраняване на десет елемента. Следователно масивите не са динамични и не могат да променят размера на масива, след като е деклариран. Езици за програмиране като Java поддържа колекции, които се използват за динамично съхраняване на данни. Колекциите поддържат операции като добавяне на елементи и изтриване на елементи. В йерархията на колекцията има редица интерфейси и класове. Основният интерфейс е интерфейсът за събиране. Set е интерфейс, който разширява интерфейса на Collection. Не позволява дублиране. TreeSet и HashSet са два класа в йерархията на Collection и двата изпълняват интерфейса Set. TreeSet е клас, който реализира интерфейса Set и се използва за съхраняване на уникални елементи във възходящ ред. HashSet е клас, който реализира интерфейса Set и се използва за съхранение на уникални елементи чрез механизма Hashing. Най- ключова разлика между TreeSet и HashSet е това TreeSet съхранява елементите във възходящ ред, докато HashSet не съхранява елементите във възходящ ред. И TreeSet, и HashSet съхраняват само уникални елементи.
1. Преглед и ключова разлика
2. Какво е TreeSet
3. Какво е HashSet
4. Прилики между TreeSet и HashSet
5. Паралелно сравнение - TreeSet срещу HashSet в таблична форма
6. Резюме
TreeSet клас реализира интерфейс NavigableSet. Интерфейсът на NavigableSet разширява интерфейсите SortedSet, Set, Collection и Iterable в йерархичен ред. TreeSet винаги поддържа възходящия ред. Ако елементите бяха вмъкнати в B, A, C ред, те ще се съхраняват като A, B, C. Методите като add (), remove () могат да се използват с TreeSet обект. Методът на добавяне може да се използва за добавяне на елемент. Методът за премахване се използва за премахване на елемент от колекцията. Това са някои методи, които могат да се използват с TreeSet.
Фигура 01: Програма с TreeSet
Според горната програма се създава обект от тип TreeSet. Елементите от низови данни се добавят към този обект чрез метода на добавяне. Редът за вмъкване на данни е A, D, A, B, C, D. С помощта на итератора запаметените стойности се отпечатват на екрана. Изходът е A, B, C, D. Въпреки че има две букви A и две D букви, изходът показва едното A и D D всяко. Затова TreeSet съхранява уникални елементи. Няма конкретен ред на вмъкване, но при наблюдение на изхода може да се види, че TreeSet поддържа възходящия ред на елементите.
Класът HashSet разширява класа AbstractSet, който реализира Set Interface. Интерфейсът Set наследява интерфейсите на Collection и Iterable в йерархичен ред. В HashSet няма гаранция, че елементите ще поддържат възходящия и вмъкнатия ред. Ако вмъкнатият ред е A, B, C, стойностите могат да се съхраняват като C, A, B. Поръчката за съхранение също може да бъде A, B, C, но няма гаранция, че вмъкнатият или възходящ ред се поддържа.
Фигура 02: Програма с HashSet
Според горната програма се създава обект от тип HashSet. Елементите от низови данни се добавят към този обект чрез метода на добавяне. Редът за въвеждане на данни е L, R, M, M, R, L. С помощта на итератора запаметените стойности се отпечатват на екрана. Изходът е R L M. Въпреки че има две букви L, R и M от всяка, само по една буква се показва. Затова HashSet съхранява уникални елементи. При наблюдение на изхода се вижда, че няма възходящ ред или вмъкваният ред се поддържа.
TreeSet срещу HashSet | |
TreeSet е клас в йерархията на колекцията, който се използва за съхраняване на уникални елементи във възходящ ред. | HashSet е клас в йерархията на колекцията, който се използва за съхраняване на уникални елементи чрез механизма на Hashing. |
Съхранение на елементи | |
TreeSet съхранява елементите във възходящ ред. | HashSet не съхранява елементите във възходящ ред. |
При програмирането се изисква динамично съхраняване на данни. Езици за програмиране като Java поддържа колекции за постигане на тази задача. В йерархията на колекцията има редица интерфейси и класове. TreeSet и HashSet са два класа в йерархията на Collection. И двете реализират Set интерфейса. TreeSet е клас, който реализира интерфейса Set и се използва за съхраняване на уникални елементи във възходящ ред. HashSet е клас, който реализира интерфейса Set и се използва за съхранение на уникални елементи чрез механизма Hashing. Разликата между TreeSet и HashSet е, че TreeSet съхранява елементите във възходящ ред, докато HashSet не съхранява елементите във възходящ ред. Тази статия обсъжда разликата между TreeSet и HashSet.
1. „TreeSet в Java - javatpoint.“ JavaPoint. Налични тук
2. „HashSet в Java - javatpoint.“ JavaPoint . Налични тук