Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Johdanto Tietorakenteisiin | Osio
Javan Perustietorakenteet
Osio 1. Luku 1
single

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

Main.java

1234567891011
package 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.

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Täydennä upgrade_comparing-metodi niin, että se käyttää compareTo()-metodia ja palauttaa kuvailevan viestin vertailun tuloksen perusteella.

  1. Kutsu compareTo()-metodia left_value-oliolla ja anna right_value argumenttina.
  2. Tallenna tulos muuttujaan comparingResult.
  3. Käytä switch-lausetta käsitelläksesi tämän tuloksen:
    • Jos tulos on -1, aseta muuttujaan result arvoksi "The right value is greater".
    • Jos tulos on 0, aseta muuttujaan result arvoksi "The values are equal".
    • Jos tulos on 1, aseta muuttujaan result arvoksi "The left value is greater".
  4. Jos tulos ei jostain syystä vastaa mitään näistä arvoista, tulosta "Error".
  5. Palauta muuttuja result metodista.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 1
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt