Tietorakenteiden Esittely
Tervetuloa kurssille Java-tietorakenteet! Tämä kurssi on suunnattu Java-kehittäjille, jotka haluavat syventää ymmärrystään tietorakenteista ja parantaa koodauksen tehokkuuttaan.
Tämä kurssi ei sovellu aloittelijoille. Jos et ole suorittanut kolmea aiempaa Java-kurssiamme, saatat kokea tämän haastavaksi.
Saadaksesi parhaan hyödyn tästä kurssista, suosittelemme vahvasti suorittamaan ne ensin ennen kuin siirryt Java-tietorakenteisiin.
Mitä kokoelmat ovat ja miksi niitä tarvitaan?
Kokoelmat Javassa ovat yksi tietorakenteista, joita käytetään hyvin 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 taulukoina. Ne laajenevat elementtien lisääntyessä. Kun lisäät alkion listaan, listan koko kasvaa niin, että kaikki alkiot mahtuvat mukaan.
Kokoelmat voivat auttaa ymmärtämään tietokannan toimintaa, koska kokoelmiin voidaan myös tallentaa suuria määriä dataa. Kokoelmiin voidaan tallentaa erilaisten luokkien olioita. Voimme jopa tallentaa taulukoita kokoelmiin, mikä on erittäin kätevä tapa säilyttää suuria määriä dataa.
Kääreet
Kun aloitetaan työskentely kokoelmien kanssa, on syytä huomioida, että kokoelmat eivät voi käsitellä primitiivisiä tietotyyppejä. Ne toimivat nimenomaan olioiden kanssa. Yksinkertaisen luvun tai merkin tallentamiseen tarvitaan kääreluokka kyseiselle primitiiviselle tietotyypille.
Primitiiviset 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 olio-pohjaisen kääreen jokaiselle primitiiviselle tyypille.
Tässä on luettelo kääreluokista (wrapper classes) perustyypeille (primitive types):
Nämä luokat tarjoavat menetelmiä muuntamiseen perustyyppien ja olioiden välillä sekä erilaisia toimintoja arvojen käsittelyyn, kuten vertailu, aritmeettiset operaatiot ja paljon 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 numerolla. Tämä on esimerkki autoboxingista. Seuraavaksi loimme primitiivisen int-muuttujan ja annoimme sille wrapper-luokan arvon, mitä kutsutaan unboxingiksi.
Tästä voimme päätellä, 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 oikeanpuoleinen, ja -1, jos vasemmanpuoleinen arvo on pienempi kuin oikeanpuoleinen.
Wrapper-luokat tarjoavat monia hyödyllisiä metodeja. Et käsittele niitä kaikkia tässä, mutta voit tutkia niitä tarkemmin IDE:ssäsi.
Swipe to start coding
Täydennä upgrade_comparing-metodi siten, että se käyttää compareTo()-metodia ja palauttaa kuvailevan viestin vertailun tuloksen perusteella.
- Kutsu
compareTo()-metodialeft_value-oliolle, välittäenright_valueargumenttina. - Tallenna tulos muuttujaan
comparingResult. - Käytä
switch-lausetta tämän tuloksen käsittelemiseen:- Jos tulos on
-1, aseta muuttujaanresultarvo"The right value is greater". - Jos tulos on
0, aseta muuttujaanresultarvo"The values are equal". - Jos tulos on
1, aseta muuttujaanresultarvo"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
Mahtavaa!
Completion arvosana parantunut arvoon 4
Tietorakenteiden Esittely
Pyyhkäise näyttääksesi valikon
Tervetuloa kurssille Java-tietorakenteet! Tämä kurssi on suunnattu Java-kehittäjille, jotka haluavat syventää ymmärrystään tietorakenteista ja parantaa koodauksen tehokkuuttaan.
Tämä kurssi ei sovellu aloittelijoille. Jos et ole suorittanut kolmea aiempaa Java-kurssiamme, saatat kokea tämän haastavaksi.
Saadaksesi parhaan hyödyn tästä kurssista, suosittelemme vahvasti suorittamaan ne ensin ennen kuin siirryt Java-tietorakenteisiin.
Mitä kokoelmat ovat ja miksi niitä tarvitaan?
Kokoelmat Javassa ovat yksi tietorakenteista, joita käytetään hyvin 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 taulukoina. Ne laajenevat elementtien lisääntyessä. Kun lisäät alkion listaan, listan koko kasvaa niin, että kaikki alkiot mahtuvat mukaan.
Kokoelmat voivat auttaa ymmärtämään tietokannan toimintaa, koska kokoelmiin voidaan myös tallentaa suuria määriä dataa. Kokoelmiin voidaan tallentaa erilaisten luokkien olioita. Voimme jopa tallentaa taulukoita kokoelmiin, mikä on erittäin kätevä tapa säilyttää suuria määriä dataa.
Kääreet
Kun aloitetaan työskentely kokoelmien kanssa, on syytä huomioida, että kokoelmat eivät voi käsitellä primitiivisiä tietotyyppejä. Ne toimivat nimenomaan olioiden kanssa. Yksinkertaisen luvun tai merkin tallentamiseen tarvitaan kääreluokka kyseiselle primitiiviselle tietotyypille.
Primitiiviset 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 olio-pohjaisen kääreen jokaiselle primitiiviselle tyypille.
Tässä on luettelo kääreluokista (wrapper classes) perustyypeille (primitive types):
Nämä luokat tarjoavat menetelmiä muuntamiseen perustyyppien ja olioiden välillä sekä erilaisia toimintoja arvojen käsittelyyn, kuten vertailu, aritmeettiset operaatiot ja paljon 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 numerolla. Tämä on esimerkki autoboxingista. Seuraavaksi loimme primitiivisen int-muuttujan ja annoimme sille wrapper-luokan arvon, mitä kutsutaan unboxingiksi.
Tästä voimme päätellä, 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 oikeanpuoleinen, ja -1, jos vasemmanpuoleinen arvo on pienempi kuin oikeanpuoleinen.
Wrapper-luokat tarjoavat monia hyödyllisiä metodeja. Et käsittele niitä kaikkia tässä, mutta voit tutkia niitä tarkemmin IDE:ssäsi.
Swipe to start coding
Täydennä upgrade_comparing-metodi siten, että se käyttää compareTo()-metodia ja palauttaa kuvailevan viestin vertailun tuloksen perusteella.
- Kutsu
compareTo()-metodialeft_value-oliolle, välittäenright_valueargumenttina. - Tallenna tulos muuttujaan
comparingResult. - Käytä
switch-lausetta tämän tuloksen käsittelemiseen:- Jos tulos on
-1, aseta muuttujaanresultarvo"The right value is greater". - Jos tulos on
0, aseta muuttujaanresultarvo"The values are equal". - Jos tulos on
1, aseta muuttujaanresultarvo"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