Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Introduktion till Datastrukturer | Section
Grundläggande Datastrukturer i Java
Avsnitt 1. Kapitel 1
single

single

Introduktion till Datastrukturer

Svep för att visa menyn

Vad är samlingar och varför behövs de?

Samlingar i Java är en av de datastrukturer som används mycket ofta. En datastruktur är i sin tur ett sätt att lagra olika datatyper.

Enkelt uttryckt är en samling en lista av data eller variabler av en specifik typ.
Medan arrayer är statisk, vilket innebär att de har en fast storlek som definieras vid initiering, kan samlingar ses som dynamiska arrayer. De utökas när element läggs till. Så när du lägger till ett element i listan, ökar listans storlek tills den kan rymma alla element.

Samlingar kan hjälpa oss att förstå hur en databas fungerar eftersom vi med samlingar också kan lagra stora mängder data. I samlingar kan vi lagra objekt av olika klasser. Vi kan till och med lagra arrayer i samlingar, vilket är ett mycket bekvämt sätt att lagra stora datamängder.

Wrappers

För att börja arbeta med samlingar är det värt att notera att samlingar inte kan hantera primitiva datatyper. De arbetar specifikt med objekt. För att lagra ett enkelt tal eller tecken behöver vi använda en wrapper-klass för den primitiva datatypen.

Primitiva datatyper (såsom int, char, float, boolean och andra) är inte objekt, och ibland finns det behov av att arbeta med dem som objekt, till exempel i samlingar eller när man använder klasser som förväntar sig objekt. Wrapper-klasser erbjuder ett objektorienterat omslag för varje primitiv typ.

Här är en lista över wrapper-klasser för primitiva typer:

Dessa klasser tillhandahåller metoder för konvertering mellan primitiva typer och objekt, samt olika funktioner för att arbeta med värden, såsom jämförelse, aritmetiska operationer och mer.

Här är några exempel på hur man använder wrapper-klasser:

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); } }

I koden ovan skapade vi ett objekt av klassen Integer och initierade det med ett vanligt tal. Detta är ett exempel på autoboxing. Därefter skapade vi en primitiv int och tilldelade den wrapper-värdet, vilket kallas unboxing.

Utifrån detta kan vi förstå att autoboxing är automatisk konvertering av en primitiv datatyp till ett objekt av wrapper-klassen. Å andra sidan är unboxing automatisk konvertering av ett objekt av wrapper-klassen tillbaka till en primitiv datatyp.

Du kan också se hur vi använde jämförelsemetoden, som returnerar 0 om värdena är lika, 1 om vänstra värdet är större än det högra och -1 om vänstra värdet är mindre än det högra.

Wrapper-klasser erbjuder många användbara metoder. Du kommer inte att gå igenom alla nu, men du kan utforska dem i din IDE.

Uppgift

Svep för att börja koda

Slutför metoden upgrade_comparing så att den använder metoden compareTo() och returnerar ett beskrivande meddelande beroende på jämförelseresultatet.

  1. Anropa metoden compareTo()left_value och skicka in right_value som argument.
  2. Spara resultatet i variabeln comparingResult.
  3. Använd en switch-sats för att bearbeta detta resultat:
    • Om resultatet är -1, tilldela variabeln result värdet "The right value is greater".
    • Om resultatet är 0, tilldela variabeln result värdet "The values are equal".
    • Om resultatet är 1, tilldela variabeln result värdet "The left value is greater".
  4. Om resultatet av någon anledning inte matchar något av dessa värden, skriv ut "Error".
  5. Returnera variabeln result från metoden.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 1
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt