Ero TreeSetin ja HashSetin välillä

Sisällysluettelo:

Ero TreeSetin ja HashSetin välillä
Ero TreeSetin ja HashSetin välillä

Video: Ero TreeSetin ja HashSetin välillä

Video: Ero TreeSetin ja HashSetin välillä
Video: How to Implement a Hash Table in JavaScript 2024, Heinäkuu
Anonim

Avainero – TreeSet vs HashSet

Useimmat ohjelmointikielet tukevat taulukoita. Se on tietorakenne, jota käytetään useiden saman tietotyypin elementtien tallentamiseen. Jos kuudelle elementille on ilmoitettu matriisi, sitä ei voi käyttää kymmenen elementin tallentamiseen. Siksi taulukot eivät ole dynaamisia eivätkä voi muuttaa taulukon kokoa sen ilmoittamisen jälkeen. Ohjelmointikielet, kuten Java, tukevat kokoelmia, joita käytetään tietojen tallentamiseen dynaamisesti. Kokoelmat tukevat toimintoja, kuten elementtien lisäämistä ja poistamista. Kokoelmahierarkiassa on useita rajapintoja ja luokkia. Perusrajapinta on Collection-rajapinta. Set on käyttöliittymä, joka laajentaa Collection-käyttöliittymää. Se ei salli päällekkäisyyttä. TreeSet ja HashSet ovat kaksi luokkaa kokoelmahierarkiassa ja molemmat toteuttavat Set-rajapinnan. TreeSet on luokka, joka toteuttaa Set-rajapinnan ja sitä käytetään yksilöllisten elementtien tallentamiseen nousevassa järjestyksessä. HashSet on Set-rajapinnan toteuttava luokka, jota käytetään ainutlaatuisten elementtien tallentamiseen Hashing-mekanismin avulla. Tärkein ero TreeSetin ja HashSetin välillä on, että TreeSet tallentaa elementit nousevassa järjestyksessä, kun taas HashSet ei tallenna elementtejä nousevassa järjestyksessä. Sekä TreeSet että HashSet tallentavat vain ainutlaatuisia elementtejä.

Mikä on TreeSet?

TreeSet-luokka toteuttaa NavigableSet-liittymän. NavigableSet-käyttöliittymä laajentaa SortedSet-, Set-, Collection- ja Iterable-rajapintoja hierarkkisessa järjestyksessä. TreeSet ylläpitää aina nousevaa järjestystä. Jos elementit on lisätty B, A, C järjestyksessä, ne tallennetaan muodossa A, B, C. TreeSet-objektin kanssa voidaan käyttää menetelmiä, kuten lisää (), poista (). Lisää-menetelmää voidaan käyttää elementin lisäämiseen. Poista-menetelmää käytetään elementin poistamiseen kokoelmasta. Näitä menetelmiä voidaan käyttää TreeSetin kanssa.

Ero TreeSetin ja HashSetin välillä
Ero TreeSetin ja HashSetin välillä

Kuva 01: Ohjelma TreeSetillä

Yllä olevan ohjelman mukaisesti luodaan TreeSet-tyyppinen objekti. Merkkijonotietoelementit lisätään kyseiseen objektiin add-menetelmällä. Tietojen lisäysjärjestys on A, D, A, B, C, D. Iteraattorin avulla tallennetut arvot tulostetaan näytölle. Tulos on A, B, C, D. Vaikka A-kirjainta ja kaksi D-kirjainta on kaksi, tulos näyttää kumpikin yksi A ja yksi D. Siksi TreeSet tallentaa ainutlaatuisia elementtejä. Mitään erityistä lisäysjärjestystä ei ole, mutta lähtöä tarkasteltaessa voidaan nähdä, että TreeSet ylläpitää elementtien nousevaa järjestystä.

Mikä on HashSet?

HashSet-luokka laajentaa AbstractSet-luokkaa, joka toteuttaa Set Interfacen. Set-käyttöliittymä perii Collection- ja Iterable-rajapinnat hierarkkisessa järjestyksessä. HashSetissä ei ole takeita siitä, että elementit säilyttävät nousevassa ja lisätyssä järjestyksessä. Jos lisätty järjestys oli A, B, C, arvot saatetaan tallentaa muodossa C, A, B. Tallennusjärjestys voi olla myös A, B, C, mutta ei ole takeita siitä, että lisätty järjestys tai nouseva järjestys säilyy.

Keskeinen ero TreeSetin ja HashSetin välillä
Keskeinen ero TreeSetin ja HashSetin välillä

Kuva 02: Ohjelma HashSetillä

Yllä olevan ohjelman mukaisesti luodaan HashSet-tyyppinen objekti. Merkkijonotietoelementit lisätään kyseiseen objektiin add-menetelmällä. Tietojen lisäysjärjestys on L, R, M, M, R, L. Iteraattorin avulla tallennetut arvot tulostetaan näytölle. Tulos on R L M. Vaikka kummastakin on kaksi L-, R- ja M-kirjainta, vain yksi kirjain kustakin näytetään. Siksi HashSet tallentaa ainutlaatuisia elementtejä. Tulosta tarkasteltaessa voidaan nähdä, että nousevaa järjestystä ei ole tai lisätty järjestys säilyy.

Mitä yhtäläisyyksiä TreeSetin ja HashSetin välillä on?

  • Sekä TreeSet että HashSet ovat luokkia, jotka kuuluvat kokoelmahierarkiaan.
  • Sekä TreeSet että HashSet tallentavat vain ainutlaatuisia elementtejä.
  • Sekä TreeSetiä että HashSetiä voidaan käyttää monien elementtien tallentamiseen ja käsittelemiseen.
  • Sekä TreeSet että HashSet eivät säilytä lisättyä järjestystä.

Mitä eroa TreeSetin ja HashSetin välillä on?

TreeSet vs HashSet

TreeSet on luokka kokoelmahierarkiassa, jota käytetään yksilöllisten elementtien tallentamiseen nousevassa järjestyksessä. HashSet on luokka hierarkiassa, jota käytetään ainutlaatuisten elementtien tallentamiseen hajautusmekanismin avulla.
Elementtien tallennus
TreeSet tallentaa elementit nousevassa järjestyksessä. HashSet ei tallenna elementtejä nousevassa järjestyksessä.

Yhteenveto – TreeSet vs HashSet

Ohjelmoinnissa tietoelementit on tallennettava dynaamisesti. Ohjelmointikielet, kuten Java, tukevat kokoelmia tämän tehtävän saavuttamiseksi. Kokoelmahierarkiassa on useita rajapintoja ja luokkia. TreeSet ja HashSet ovat kaksi luokkaa kokoelmahierarkiassa. Molemmat toteuttavat Set-liittymän. TreeSet on luokka, joka toteuttaa Set-rajapinnan ja sitä käytetään yksilöllisten elementtien tallentamiseen nousevassa järjestyksessä. HashSet on Set-rajapinnan toteuttava luokka, jota käytetään ainutlaatuisten elementtien tallentamiseen Hashing-mekanismin avulla. Ero TreeSetin ja HashSetin välillä on, että TreeSet tallentaa elementit nousevassa järjestyksessä, kun taas HashSet ei tallenna elementtejä nousevassa järjestyksessä. Tässä artikkelissa käsiteltiin TreeSetin ja HashSetin välistä eroa.

Suositeltava: