Lielākā daļa programmēšanas valodu atbalsta masīvus. Tā ir datu struktūra, kuru izmanto, lai glabātu vairākus viena un tā paša veida elementus. Ja sešiem elementiem ir deklarēts masīvs, tad to nevar izmantot desmit elementu glabāšanai. Tāpēc masīvi nav dinamiski un nevar mainīt masīva lielumu, tiklīdz tas ir deklarēts. Programmēšanas valodas, piemēram, Java, atbalsta kolekcijas, kuras izmanto dinamiskai datu glabāšanai. Kolekcijas atbalsta tādas darbības kā elementu pievienošana un dzēšana. Kolekcijas hierarhijā ir vairākas saskarnes un klases. Pamata saskarne ir kolekcijas saskarne. Komplekts ir interfeiss, kas paplašina kolekcijas saskarni. Tas nepieļauj kopēšanu. TreeSet un HashSet ir divas klases kolekcijas hierarhijā un abas ievieš Set interfeisu. TreeSet ir klase, kas ievieš Set interfeisu, un to izmanto unikālu elementu saglabāšanai augošā secībā. HashSet ir klase, kas ievieš Set interfeisu, un to izmanto unikālu elementu glabāšanai, izmantojot Hašinga mehānismu. galvenā atšķirība starp TreeSet un HashSet ir tas TreeSet saglabā elementus augošā secībā, savukārt HashSet neuzglabā elementus augošā secībā.. Gan TreeSet, gan HashSet glabā tikai unikālus elementus.
1. Pārskats un galvenās atšķirības
2. Kas ir TreeSet
3. Kas ir HashSet?
4. Līdzības starp TreeSet un HashSet
5. Salīdzinājums blakus - TreeSet vs HashSet tabulas formā
6. Kopsavilkums
TreeSet klase ievieš NavigableSet saskarni. NavigableSet interfeiss paplašina SortedSet, Set, Collection un Iterable saskarnes hierarhiskā secībā. TreeSet vienmēr uztur augošo secību. Ja elementi tika ievietoti B, A, C secībā, tie tiks saglabāti kā A, B, C. Tādas metodes kā pievienot (), noņemt () var izmantot objektā TreeSet. Elementa pievienošanai var izmantot pievienošanas metodi. Elementa noņemšanai no kolekcijas tiek izmantota noņemšanas metode. Šīs ir dažas metodes, ko var izmantot kopā ar TreeSet.
01. attēls. Programma ar TreeSet
Saskaņā ar iepriekšminēto programmu tiek izveidots objekts, kura tips ir TreeSet. Virkņu datu elementi tiek pievienoti šim objektam, izmantojot pievienošanas metodi. Ievietoto datu secība ir A, D, A, B, C, D. Izmantojot iteratoru, saglabātās vērtības tiek izdrukātas uz ekrāna. Izeja ir A, B, C, D. Lai arī ir divi A burti un divi D burti, izvadē tiek parādīts viens A un viens D. Tāpēc TreeSet saglabā unikālus elementus. Īpaša ievietošanas secība nav, bet, novērojot izvadi, var redzēt, ka TreeSet uztur elementu augošo secību..
HashSet klase paplašina AbstractSet klasi, kas ievieš Set Interface. Set interfeiss manto kolekcijas un atkārtojamās saskarnes manto hierarhiskā secībā. Programmā HashSet nav garantijas, ka elementi saglabās augošo secību un ievietoto kārtību. Ja ievietotais pasūtījums bija A, B, C, tad vērtības var saglabāties kā C, A, B. Uzglabāšanas secība var būt arī A, B, C, bet nav garantijas, ka ievietotā kārtība vai augošā secība tiek saglabāta.
Attēls 02: Programma ar HashSet
Saskaņā ar iepriekšminēto programmu tiek izveidots objekts, kura tips ir HashSet. Virkņu datu elementi tiek pievienoti šim objektam, izmantojot pievienošanas metodi. Ievietoto datu secība ir L, R, M, M, R, L. Izmantojot iteratoru, saglabātās vērtības tiek izdrukātas uz ekrāna. Izeja ir R L M. Lai gan no katra ir divi L, R un M burti, tiek parādīts tikai viens burts no katra. Tāpēc HashSet saglabā unikālus elementus. Novērojot izvadi, var redzēt, ka nav augošas secības vai tiek saglabāta ievietotā kārtība.
TreeSet vs HashSet | |
TreeSet ir kolekcijas hierarhijas klase, kuru izmanto unikālu elementu saglabāšanai augošā secībā. | HashSet ir kolekcijas hierarhijas klase, kuru izmanto unikālu elementu glabāšanai, izmantojot Hašinga mehānismu. |
Elementu glabāšana | |
TreeSet saglabā elementus augošā secībā. | HashSet neuzglabā elementus augošā secībā. |
Plānojot, ir nepieciešams dinamiski uzglabāt datu elementus. Programmēšanas valodas, piemēram, Java, atbalsta kolekcijas, lai sasniegtu šo uzdevumu. Kolekcijas hierarhijā ir vairākas saskarnes un klases. TreeSet un HashSet ir divas klases kolekcijas hierarhijā. Abi ievieš interfeisu Set. TreeSet ir klase, kas ievieš Set interfeisu, un to izmanto unikālu elementu saglabāšanai augošā secībā. HashSet ir klase, kas ievieš Set interfeisu, un to izmanto unikālu elementu glabāšanai, izmantojot Hašinga mehānismu. Atšķirība starp TreeSet un HashSet ir tā, ka TreeSet saglabā elementus augošā secībā, savukārt HashSet neuzglabā elementus augošā secībā. Šajā rakstā tika apskatīta atšķirība starp TreeSet un HashSet.
1. “TreeSet Java - javatpoint”. JavaPoint. Pieejams šeit
2. “HashSet Java - javatpoint”. JavaPoint . Pieejams šeit