Galvenā atšķirība - TreeSet vs HashSet
Lielākā daļa programmēšanas valodu atbalsta masīvus. Tā ir datu struktūra, ko izmanto, lai saglabātu vairākus viena un tā paša datu tipa 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, kad tas ir deklarēts. Programmēšanas valodas, piemēram, Java, atbalsta kolekcijas, kas tiek izmantotas datu dinamiskai glabāšanai. Kolekcijas atbalsta darbības, piemēram, elementu pievienošanu un elementu dzēšanu. Kolekciju hierarhijā ir vairākas saskarnes un klases. Pamatinterfeiss ir kolekcijas interfeiss. Set ir saskarne, kas paplašina kolekcijas saskarni. Tas nepieļauj dublēšanos. TreeSet un HashSet ir divas klases kolekcijas hierarhijā, un abas ievieš Set saskarni. TreeSet ir klase, kas ievieš Set saskarni un tiek izmantota unikālu elementu glabāšanai augošā secībā. HashSet ir klase, kas ievieš Set saskarni un tiek izmantota unikālu elementu glabāšanai, izmantojot jaukšanas mehānismu. Galvenā atšķirība starp TreeSet un HashSet ir tāda, ka TreeSet saglabā elementus augošā secībā, savukārt HashSet nesaglabā elementus augošā secībā. Gan TreeSet, gan HashSet saglabā tikai unikālus elementus.
Kas ir TreeSet?
TreeSet klase ievieš NavigableSet saskarni. NavigableSet interfeiss paplašina SortedSet, Set, Collection un Iterable saskarnes hierarhiskā secībā. TreeSet vienmēr saglabā augošu 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 ar TreeSet objektu. Pievienošanas metodi var izmantot, lai pievienotu elementu. Noņemšanas metode tiek izmantota, lai noņemtu elementu no kolekcijas. Šīs ir dažas metodes, kuras var izmantot kopā ar TreeSet.
Attēls 01: Programma ar TreeSet
Saskaņā ar augstāk minēto programmu tiek izveidots TreeSet tipa objekts. Virknes 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. Izvade ir A, B, C, D. Lai gan ir divi A burti un divi D burti, izvadā tiek parādīts viens A un viens D burts. Tāpēc TreeSet saglabā unikālus elementus. Nav īpašas ievietošanas secības, bet, novērojot izvadi, var redzēt, ka TreeSet saglabā elementu augošo secību.
Kas ir HashSet?
HashSet klase paplašina AbstractSet klasi, kas ievieš Set Interface. Iestatīšanas saskarne pārmanto kolekcijas un iterējamās saskarnes hierarhiskā secībā. Programmā HashSet nav garantijas, ka elementi saglabās augošā secību un ievietoto secību. Ja ievietotā secība bija A, B, C, vērtības var tikt saglabātas kā C, A, B. Uzglabāšanas secība var būt arī A, B, C, taču nav garantijas, ka ievietotā secība vai augošā secība tiks saglabāta.
Attēls 02: programma ar HashSet
Saskaņā ar augstāk minēto programmu tiek izveidots HashSet tipa objekts. Virknes 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. Izvade ir R L M. Lai gan katrā ir divi L, R un M burti, tiek parādīts tikai viens burts no katra. Tāpēc HashSet saglabā unikālus elementus. Vērojot izvadi, var redzēt, ka nav augošas kārtas vai arī tiek saglabāta ievietotā secība.
Kādas ir TreeSet un HashSet līdzības?
- Gan TreeSet, gan HashSet ir klases, kas pieder kolekcijas hierarhijai.
- Gan TreeSet, gan HashSet saglabā tikai unikālus elementus.
- Gan TreeSet, gan HashSet var izmantot, lai saglabātu un apstrādātu daudzus elementus.
- Gan TreeSet, gan HashSet nesaglabā ievietoto secību.
Kāda ir atšķirība starp TreeSet un HashSet?
TreeSet vs HashSet |
|
TreeSet ir klase kolekcijas hierarhijā, ko izmanto, lai saglabātu unikālus elementus augošā secībā. | HashSet ir klase kolekcijas hierarhijā, kas tiek izmantota unikālu elementu glabāšanai, izmantojot jaukšanas mehānismu. |
Elementu glabāšana | |
TreeSet saglabā elementus augošā secībā. | HashSet nesaglabā elementus augošā secībā. |
Kopsavilkums - TreeSet vs HashSet
Programmēšanā datu elementi ir jāuzglabā dinamiski. Programmēšanas valodas, piemēram, Java, atbalsta kolekcijas, lai veiktu šo uzdevumu. Kolekciju hierarhijā ir vairākas saskarnes un klases. TreeSet un HashSet ir divas klases kolekcijas hierarhijā. Abi ievieš Set interfeisu. TreeSet ir klase, kas ievieš Set saskarni un tiek izmantota unikālu elementu glabāšanai augošā secībā. HashSet ir klase, kas ievieš Set saskarni un tiek izmantota unikālu elementu glabāšanai, izmantojot jaukšanas mehānismu. Atšķirība starp TreeSet un HashSet ir tāda, ka TreeSet saglabā elementus augošā secībā, savukārt HashSet nesaglabā elementus augošā secībā. Šajā rakstā tika apspriesta atšķirība starp TreeSet un HashSet.