Ryhmät vs. Arraylistat
Taulukot ovat yleisimmin käytetty tietorakenne elementtien kokoelman tallentamiseksi. Useimmat ohjelmointikielet tarjoavat menetelmiä matriisien ja pääsyelementtien ilmoittamiseksi helposti matriiseissa. Ryhmälista voidaan nähdä dynaamisena taulukkona, jonka koko voi kasvaa. Tästä syystä ohjelmoijan ei tarvitse tietää taulukon kokoa määritellessään sitä.
Mitä ovat ryhmät?
Kuvassa 1 on koodinpätkä, jota käytetään tyypillisesti taulukon arvojen ilmoittamiseen ja määrittämiseen. Kuvio 2 kuvaa kuinka taulukko näyttäisi muistista.
int-arvot [5]; arvot [0] = 100; arvot [1] = 101; arvot [2] = 102; arvot [3] = 103; arvot [4] = 104; |
Kuva 1: Koodi taulukon arvojen ilmoittamiseen ja määrittämiseen
100 | 101 | 102 | 103 | 104 |
Hakemisto: 0 | 1 | 2 | 3 | 4 |
Kuva 2: Muistiin tallennettu taulukko
Koodin yläpuolella määrittelee taulukon, joka voi tallentaa 5 kokonaislukua ja niihin päästään indekseillä 0–4. Yksi tärkeä taulukon ominaisuus on, että koko taulukko allokoidaan yhtenä muistimuistina ja jokainen elementti saa oman tilansa taulukossa. . Kun taulukko on määritelty, sen koko on kiinteä. Joten jos et ole varma taulukon koosta kokoamishetkellä, joudut määrittelemään riittävän suuren taulukon ollakseen turvallisella puolella. Mutta useimmiten aiomme tosiasiassa käyttää vähemmän elementtejä kuin olemme osoittaneet. Joten huomattavasti muistia menetetään todella. Toisaalta, jos ”riittävän suuri ryhmä” ei oikeastaan ole riittävän suuri, ohjelma kaatuu.
Mitä ovat ryhmät?
Ryhmälista voidaan nähdä dynaamisena taulukkona, jonka koko voi kasvaa. Siksi taulukot ovat ihanteellisia käytettäväksi tilanteissa, joissa et tiedä ilmoittamishetkellä vaadittavien elementtien kokoa. Java-järjestelmässä taulukot voivat pitää vain objekteja, ne eivät voi pitää alkeellisia tyyppejä suoraan (voit laittaa alkeelliset tyypit objektin sisään tai käyttää alkeellisten tyyppien kääreluokkia). Yleensä taulukkoluettelot toimitetaan menetelmillä lisäyksen, poiston ja haun suorittamiseksi. Elementtiin pääsyn aikakompleksisuus on o (1), kun taas insertion ja deletion aikakompleksi on o (n). Java-ohjelmassa ryhmälistoja voidaan kulkea foreach-silmukoilla, iteraattoreilla tai yksinkertaisesti hakemistoilla.
Mikä on ero ryhmien ja ryhmien välillä?
Vaikka taulukot ja matriisilistat ovat samankaltaisia siinä mielessä, että niitä molempia käytetään elementtien kokoelmien tallentamiseen, ne eroavat toisistaan niiden määrittelemisessä. Taulukon koko on annettava, kun matriisi määritetään, mutta voit määrittää taulukon luettelon tietämättä todellista kokoa. Voit lisätä elementtejä taulukkoon sen jälkeen, kun se on määritelty, ja tämä ei ole mahdollista taulukkojen kanssa. Mutta Java: ssa taulukot eivät voi pitää alkeellisia tyyppejä, mutta taulukkoja voidaan käyttää pitämään alkeellisia tyyppejä. Mutta jos tarvitset tietorakennetta, joka voi vaihdella sen koon mukaan, parasylistlista olisi paras valinta.