Verskil tussen TreeSet en HashSet

INHOUDSOPGAWE:

Verskil tussen TreeSet en HashSet
Verskil tussen TreeSet en HashSet

Video: Verskil tussen TreeSet en HashSet

Video: Verskil tussen TreeSet en HashSet
Video: What is the difference between HashMap and TreeMap 2024, November
Anonim

Sleutelverskil – TreeSet vs HashSet

Die meeste programmeertale ondersteun Arrays. Dit is 'n datastruktuur wat gebruik word om verskeie elemente van dieselfde datatipe te stoor. As daar 'n skikking vir ses elemente verklaar is, kan dit nie gebruik word om tien elemente te stoor nie. Skikkings is dus nie dinamies nie en kan nie die grootte van die skikking verander sodra dit verklaar is nie. Programmeringstale soos Java ondersteun Versamelings wat gebruik word om data dinamies te stoor. Versamelings ondersteun bewerkings soos om elemente by te voeg en elemente uit te vee. Daar is 'n aantal koppelvlakke en klasse in die versameling hiërargie. Die basis koppelvlak is die versameling koppelvlak. Stel is 'n koppelvlak wat die versameling-koppelvlak uitbrei. Dit laat nie duplisering toe nie. Die TreeSet en HashSet is twee klasse in die Versameling-hiërargie en beide implementeer die Stel-koppelvlak. TreeSet is 'n klas wat die Stel-koppelvlak implementeer en dit word gebruik om unieke elemente in stygende volgorde te stoor. HashSet is 'n klas wat die Stel-koppelvlak implementeer en dit word gebruik om unieke elemente te stoor deur die Hashing-meganisme te gebruik. Die belangrikste verskil tussen TreeSet en HashSet is dat TreeSet die elemente in stygende volgorde stoor terwyl die HashSet nie die elemente in stygende volgorde stoor nie. Beide TreeSet en HashSet stoor net unieke elemente.

Wat is 'n TreeSet?

TreeSet-klas implemente NavigableSet-koppelvlak. Die NavigableSet-koppelvlak brei SortedSet, Set, Collection en Iterable-koppelvlakke uit in hiërargiese volgorde. TreeSet handhaaf altyd die stygende volgorde. As die elemente in B, A, C-volgorde ingevoeg is, sal hulle gestoor word as A, B, C. Die metodes soos byvoeg (), verwyder () kan met TreeSet-objek gebruik word. Die add-metode kan gebruik word om 'n element by te voeg. Die verwyderingsmetode word gebruik om 'n element uit die versameling te verwyder. Dit is 'n paar metodes wat met TreeSet gebruik kan word.

Verskil tussen TreeSet en HashSet
Verskil tussen TreeSet en HashSet

Figuur 01: Program met TreeSet

Volgens bogenoemde program word 'n objek van tipe TreeSet geskep. Die string data-elemente word by daardie objek gevoeg deur die add-metode te gebruik. Die data wat ingevoeg word, is A, D, A, B, C, D. Deur die iterator te gebruik, word die gestoorde waardes op die skerm gedruk. Die afvoer is A, B, C, D. Alhoewel daar twee A-letters en twee D-letters is, vertoon die uitvoer elk die een A en een D. Daarom stoor die TreeSet unieke elemente. Daar is geen spesifieke invoegvolgorde nie, maar wanneer die uitvoer waargeneem word, kan dit gesien word dat die TreeSet die stygende volgorde van die elemente handhaaf.

Wat is 'n HashSet?

Die HashSet-klas brei die AbstractSet-klas uit wat Set Interface implementeer. Die Stel-koppelvlak erf Versameling- en Iterable-koppelvlakke in hiërargiese volgorde. In HashSet is daar geen waarborg dat die elemente die stygende volgorde en die ingevoegde volgorde sal handhaaf nie. As die ingevoegde volgorde A, B, C was, kan die waardes as C, A, B gestoor word. Stoorvolgorde kan ook A, B, C wees, maar daar is geen waarborg dat die ingevoegde volgorde of stygende volgorde gehandhaaf word nie.

Sleutelverskil tussen TreeSet en HashSet
Sleutelverskil tussen TreeSet en HashSet

Figuur 02: Program met HashSet

Volgens bogenoemde program word 'n voorwerp van die tipe HashSet geskep. Die string data-elemente word by daardie objek gevoeg deur die add-metode te gebruik. Die data wat ingevoeg word, is L, R, M, M, R, L. Deur die iterator te gebruik, word die gestoorde waardes op die skerm gedruk. Die uitvoer is R L M. Alhoewel daar twee L-, R- en M-letters van elk is, word slegs een letter van elk vertoon. Daarom stoor die HashSet unieke elemente. Wanneer die uitset waargeneem word, kan gesien word dat daar geen stygende volgorde is nie of die ingevoegde volgorde word gehandhaaf.

Wat is die ooreenkomste tussen TreeSet en HashSet?

  • Beide TreeSet en HashSet is klasse wat aan die versamelinghiërargie behoort.
  • Beide TreeSet en HashSet stoor slegs unieke elemente.
  • Beide TreeSet en HashSet kan gebruik word om baie elemente te stoor en te manipuleer.
  • Beide TreeSet en HashSet handhaaf nie die ingevoegde volgorde nie.

Wat is die verskil tussen TreeSet en HashSet?

TreeSet vs HashSet

TreeSet is 'n klas in die versamelinghiërargie wat gebruik word om unieke elemente in stygende volgorde te stoor. HashSet is 'n klas in die versamelinghiërargie wat gebruik word om unieke elemente te stoor deur die Hashing-meganisme te gebruik.
Elementberging
TreeSet stoor die elemente in stygende volgorde. HashSet stoor nie die elemente in stygende volgorde nie.

Opsomming – TreeSet vs HashSet

In programmering word dit vereis om data-elemente dinamies te stoor. Programmeertale soos Java ondersteun Versamelings om hierdie taak te bereik. Daar is 'n aantal koppelvlakke en klasse in die versameling hiërargie. Die TreeSet en HashSet is twee klasse in die versameling hiërargie. Albei implementeer die Stel-koppelvlak. TreeSet is 'n klas wat die Stel-koppelvlak implementeer en dit word gebruik om unieke elemente in stygende volgorde te stoor. HashSet is 'n klas wat die Stel-koppelvlak implementeer en dit word gebruik om unieke elemente te stoor deur die Hashing-meganisme te gebruik. Die verskil tussen TreeSet en HashSet is dat TreeSet die elemente in stygende volgorde stoor terwyl die HashSet nie die elemente in stygende volgorde stoor nie. Hierdie artikel het die verskil tussen TreeSet en HashSet bespreek.

Aanbeveel: