single
Johdanto Tietorakenteisiin
Pyyhkäise näyttääksesi valikon
Mitä kokoelmat ovat ja miksi niitä tarvitaan?
Kokoelmat Java-ohjelmoinnissa ovat yksi tietorakenteista, joita käytetään erittäin usein. Tietorakenne puolestaan on tapa tallentaa erilaisia tietotyyppejä.
Yksinkertaisesti sanottuna kokoelma on tietojen tai tietyn tyyppisten muuttujien lista.
Kun taas taulukot ovat staattisia, eli niillä on kiinteä koko joka määritellään alustuksessa, kokoelmat voidaan nähdä dynaamisina taulukkoina. Ne laajenevat sitä mukaa kun niihin lisätään alkioita. Kun lisäät alkion listaan, listan koko kasvaa niin, että kaikki alkiot mahtuvat mukaan.
Kokoelmat auttavat ymmärtämään miten tietokanta toimii, koska myös kokoelmilla voidaan tallentaa suuria määriä tietoa. Kokoelmiin voidaan tallentaa erilaisten luokkien olioita. Voimme jopa tallentaa taulukoita kokoelmiin, mikä on erittäin kätevä tapa säilyttää suuria tietomääriä.
Kääreluokat
Kun aloitetaan työskentely kokoelmien kanssa, on hyvä huomata, että kokoelmat eivät voi toimia primitiivisten tietotyyppien kanssa. Ne toimivat nimenomaan olioiden kanssa. Jos halutaan tallentaa yksinkertainen numero tai kirjain, täytyy käyttää kääreluokkaa primitiiviselle tietotyypille.
Alkeelliset tietotyypit (kuten int, char, float, boolean ja muut) eivät ole olioita, ja joskus niitä täytyy käsitellä olioina, esimerkiksi kokoelmissa tai käytettäessä luokkia, jotka odottavat olioita. Kääreluokat tarjoavat olioihin perustuvan kääreen jokaiselle alkeelliselle tietotyypille.
Tässä on luettelo kääreluokista alkeellisille tietotyypeille:
Nämä luokat tarjoavat menetelmiä muuntamiseen alkeellisten tietotyyppien ja olioiden välillä sekä erilaisia toimintoja arvojen käsittelyyn, kuten vertailu, aritmeettiset operaatiot ja muuta.
Tarkastellaan muutamia esimerkkejä kääreluokkien käytöstä:
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { Integer wrap = 15; // Autoboxing: converting a primitive int to an `Integer` object int prim = wrap; // Unboxing: converting an `Integer` object back to a primitive int int result = wrap.compareTo(prim); // Using the `compareTo` method of the `Integer` class System.out.println(result); } }
Yllä olevassa koodissa loimme Integer-luokan olion ja alustimme sen tavallisella luvulla. Tämä on esimerkki autoboxingista. Seuraavaksi loimme primitiivisen int-muuttujan ja annoimme sille wrapper-olion arvon, mitä kutsutaan unboxingiksi.
Tästä voimme ymmärtää, että autoboxing tarkoittaa automaattista muuntamista primitiivisestä tietotyypistä wrapper-luokan olioksi. Vastaavasti unboxing on automaattinen muuntaminen wrapper-luokan oliosta takaisin primitiiviseksi tietotyypiksi.
Voit myös huomata, kuinka käytimme vertailumenetelmää, joka palauttaa 0, jos arvot ovat yhtä suuret, 1, jos vasemmanpuoleinen arvo on suurempi kuin oikea, ja -1, jos vasemmanpuoleinen arvo on pienempi kuin oikea.
Wrapper-luokat tarjoavat monia hyödyllisiä metodeja. Et käsittele niitä kaikkia nyt, mutta voit tutkia niitä IDE:ssäsi.
Pyyhkäise aloittaaksesi koodauksen
Täydennä upgrade_comparing-metodi niin, että se käyttää compareTo()-metodia ja palauttaa kuvailevan viestin vertailun tuloksen perusteella.
- Kutsu
compareTo()-metodialeft_value-oliolla ja annaright_valueargumenttina. - Tallenna tulos muuttujaan
comparingResult. - Käytä
switch-lausetta käsitelläksesi tämän tuloksen:- Jos tulos on
-1, aseta muuttujaanresultarvoksi"The right value is greater". - Jos tulos on
0, aseta muuttujaanresultarvoksi"The values are equal". - Jos tulos on
1, aseta muuttujaanresultarvoksi"The left value is greater".
- Jos tulos on
- Jos tulos ei jostain syystä vastaa mitään näistä arvoista, tulosta
"Error". - Palauta muuttuja
resultmetodista.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme