Tärkein ero - TreeSet vs HashSet
Useimmat ohjelmointikielet tukevat matriiseja. Se on tietorakenne, jota käytetään useiden saman tietotyypin elementtien tallentamiseen. Jos kuudelle elementille on ilmoitettu taulukko, sitä ei voida käyttää kymmenen elementin tallentamiseen. Siksi matriisit eivät ole dynaamisia eivätkä voi muuttaa taulukon kokoa, kun se on ilmoitettu. Ohjelmointikielet, kuten Java, tukevat kokoelmia, joita käytetään tietojen dynaamiseen tallentamiseen. Kokoelmat tukevat toimintoja, kuten elementtien lisäämistä ja elementtien poistamista. Kokoelmahierarkiassa on useita käyttöliittymiä ja luokkia. Perusrajapinta on Collection-käyttöliittymä. Set on käyttöliittymä, joka laajentaa Collection-käyttöliittymää. Se ei salli päällekkäisyyksiä. TreeSet ja HashSet ovat kaksi luokkaa Collection-hierarkiassa ja molemmat toteuttavat Set-käyttöliittymän. TreeSet on luokka, joka toteuttaa Set-käyttöliittymän, ja sitä käytetään ainutlaatuisten elementtien tallentamiseen nousevassa järjestyksessä. HashSet on luokka, joka toteuttaa Set-käyttöliittymän, ja sitä käytetään ainutlaatuisten elementtien tallentamiseen hajautusmekanismin avulla. Tärkein ero TreeSetin ja HashSetin välillä on se, että TreeSet tallentaa elementit nousevassa järjestyksessä, kun taas HashSet ei tallenna elementtejä nousevassa järjestyksessä. Sekä TreeSet että HashSet tallentavat vain ainutlaatuisia elementtejä.
SISÄLLYS
1. Yleiskatsaus ja keskeinen ero
2. Mikä on TreeSet
3. Mikä on HashSet
4. TreeSetin ja HashSetin yhtäläisyydet
5. Vertailu vierekkäin - TreeSet vs HashSet taulukkomuodossa
6. Yhteenveto
Mikä on TreeSet?
TreeSet-luokka toteuttaa NavigableSet-käyttö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 lisättiin B-, A- ja C-järjestyksessä, ne tallennetaan A, B, C-muodossa. Menetelmiä, kuten add (), remove (), voidaan käyttää TreeSet-objektin kanssa. Lisäämismenetelmää voidaan käyttää elementin lisäämiseen. Poistomenetelmää käytetään elementin poistamiseen kokoelmasta. Nämä ovat joitain menetelmiä, joita voidaan käyttää TreeSetin kanssa.
Kuva 01: Ohjelma TreeSetin kanssa
Yllä olevan ohjelman mukaan luodaan TreeSet-tyyppinen objekti. Merkkijono-tietoelementit lisätään kyseiseen objektiin käyttämällä add-menetelmää. Lisättyjen tietojen järjestys on A, D, A, B, C, D. Iteraattorin avulla tallennetut arvot tulostetaan näytölle. Lähtö on A, B, C, D. Vaikka A-kirjaimia on kaksi ja kaksi D-kirjainta, tulosteet näyttävät yhden A: n ja yhden D: n. Siksi TreeSet tallentaa ainutlaatuisia elementtejä. Erityistä lisäysjärjestystä ei ole, mutta kun havaitaan lähtöä, voidaan nähdä, että TreeSet ylläpitää elementtien nousevaa järjestystä.
Mikä on HashSet?
HashSet-luokka laajentaa AbstractSet-luokkaa, joka toteuttaa asetetun käyttöliittymän. Set-rajapinta perii kokoelma- ja itterable-rajapinnat hierarkkisessa järjestyksessä. HashSetissä ei voida taata, että elementit säilyttävät nousevan ja lisätyn järjestyksen. Jos lisätty tilaus oli A, B, C, arvot saattavat tallentaa nimellä C, A, B. Tallennustilaus voi olla myös A, B, C, mutta ei ole takeita siitä, että lisätty tilaus tai nouseva järjestys säilytetään.
Kuva 02: Ohjelma HashSetin avulla
Yllä olevan ohjelman mukaan luodaan HashSet-tyyppinen objekti. Merkkijono-tietoelementit lisätään kyseiseen objektiin käyttämällä add-menetelmää. Lisätyn datan järjestys on L, R, M, M, R, L. Iteraattorin avulla tallennetut arvot tulostetaan näytölle. Lähtö on RL M. Vaikka kummassakin on kaksi L-, R- ja M-kirjainta, näytetään vain yksi kirjain kustakin. Siksi HashSet tallentaa ainutlaatuisia elementtejä. Lähtöä tarkkailemalla voidaan nähdä, että nousevaa järjestystä ei ole tai lisätty järjestys säilyy.
Mitkä ovat TreeSetin ja HashSetin yhtäläisyydet?
- Sekä TreeSet että HashSet ovat luokkia, jotka kuuluvat kokoelmahierarkiaan.
- Sekä TreeSet että HashSet tallentaa vain ainutlaatuisia elementtejä.
- Sekä TreeSet- että HashSet-koodeja voidaan käyttää monien elementtien tallentamiseen ja käsittelyyn.
- Sekä TreeSet että HashSet eivät säilytä lisättyä järjestystä.
Mikä on ero TreeSetin ja HashSetin välillä?
Erilainen artikkeli keskellä taulukkoa
TreeSet vs HashSet |
|
TreeSet on kokoelmahierarkian luokka, jota käytetään ainutlaatuisten elementtien tallentamiseen nousevassa järjestyksessä. | HashSet on kokoelmahierarkian luokka, jota käytetään ainutlaatuisten elementtien tallentamiseen hajautusmekanismin avulla. |
Elementtien varastointi | |
TreeSet tallentaa elementit nousevassa järjestyksessä. | HashSet ei tallenna elementtejä nousevassa järjestyksessä. |
Yhteenveto - TreeSet vs HashSet
Ohjelmoinnissa vaaditaan tietoelementtien varastointi dynaamisesti. Ohjelmointikielet, kuten Java, tukevat kokoelmia tämän tehtävän saavuttamiseksi. Kokoelmahierarkiassa on useita käyttöliittymiä ja luokkia. TreeSet ja HashSet ovat kaksi luokkaa kokoelmahierarkiassa. Molemmat toteuttavat Set-käyttöliittymän. TreeSet on luokka, joka toteuttaa Set-käyttöliittymän, ja sitä käytetään ainutlaatuisten elementtien tallentamiseen nousevassa järjestyksessä. HashSet on luokka, joka toteuttaa Set-käyttöliittymän, ja sitä käytetään ainutlaatuisten elementtien tallentamiseen hajautusmekanismin avulla. Ero TreeSetin ja HashSetin välillä on se, 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.