Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Introduktion til Datastrukturer | Sektion
Fundamentale Datastrukturer i Java
Sektion 1. Kapitel 1
single

single

Introduktion til Datastrukturer

Stryg for at vise menuen

Hvad er Collections, og hvorfor er de nødvendige?

Collections i Java er en af de datastrukturer, der bruges meget ofte. En datastruktur er på sin side en måde at gemme forskellige datatyper på.

Kort sagt er en collection en liste af data eller variabler af en bestemt type.
Mens arrays er statiske, hvilket betyder, at de har en fast størrelse defineret under initialisering, kan collections betragtes som dynamiske arrays. De udvides, efterhånden som elementer tilføjes. Så når du tilføjer et element til listen, øges størrelsen på listen, indtil den kan rumme alle elementerne.

Collections kan hjælpe os med at forstå hvordan en database fungerer, fordi vi med collections også kan gemme store mængder data. I collections kan vi gemme objekter fra forskellige klasser. Vi kan endda gemme arrays i collections, hvilket er en meget praktisk måde at lagre store datamængder på.

Wrappers

For at begynde at arbejde med collections er det værd at bemærke, at collections ikke kan arbejde med primitive datatyper. De arbejder specifikt med objekter. For at gemme et simpelt tal eller bogstav skal vi bruge en wrapper-klasse for den primitive datatype.

Primitive datatyper (såsom int, char, float, boolean og andre) er ikke objekter, og nogle gange er der behov for at arbejde med dem som objekter, for eksempel i samlinger eller ved brug af klasser, der forventer objekter. Wrapper-klasser tilbyder en objektorienteret indpakning for hver primitiv type.

Her er en liste over wrapper-klasser for primitive typer:

Disse klasser tilbyder metoder til konvertering mellem primitive typer og objekter, samt forskellige funktioner til at arbejde med værdier, såsom sammenligning, aritmetiske operationer og mere.

Lad os se på nogle eksempler på brug af 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 ovenfor oprettede vi et objekt af klassen Integer og initialiserede det med et almindeligt tal. Dette er et eksempel på autoboxing. Derefter oprettede vi en primitiv int og tildelte den wrapperens værdi, hvilket kaldes unboxing.

Ud fra dette kan vi forstå, at autoboxing er automatisk konvertering af en primitiv datatypen til et objekt af wrapper-klassen. Omvendt er unboxing automatisk konvertering af et objekt af wrapper-klassen tilbage til en primitiv datatypen.

Du kan også se, hvordan vi brugte sammenligningsmetoden, som returnerer 0, hvis værdierne er ens, 1, hvis venstre værdi er større end højre, og -1, hvis venstre værdi er mindre end højre.

Wrapper-klasser tilbyder mange nyttige metoder. Du vil ikke gennemgå dem alle nu, men du kan udforske dem i dit IDE.

Opgave

Swipe to start coding

Fuldfør upgrade_comparing-metoden, så den bruger compareTo()-metoden og returnerer en beskrivende meddelelse afhængigt af sammenligningsresultatet.

  1. Kald compareTo()-metoden på left_value og giv right_value som argument.
  2. Gem resultatet i variablen comparingResult.
  3. Brug en switch-sætning til at behandle dette resultat:
    • Hvis resultatet er -1, tildel variablen result værdien "The right value is greater".
    • Hvis resultatet er 0, tildel variablen result værdien "The values are equal".
    • Hvis resultatet er 1, tildel variablen result værdien "The left value is greater".
  4. Hvis resultatet af en eller anden grund ikke matcher nogen af disse værdier, udskriv "Error".
  5. Returnér variablen result fra metoden.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 1
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt