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
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); } }
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.
Swipe to start coding
Fuldfør upgrade_comparing-metoden, så den bruger compareTo()-metoden og returnerer en beskrivende meddelelse afhængigt af sammenligningsresultatet.
- Kald
compareTo()-metoden påleft_valueog givright_valuesom argument. - Gem resultatet i variablen
comparingResult. - Brug en
switch-sætning til at behandle dette resultat:- Hvis resultatet er
-1, tildel variablenresultværdien"The right value is greater". - Hvis resultatet er
0, tildel variablenresultværdien"The values are equal". - Hvis resultatet er
1, tildel variablenresultværdien"The left value is greater".
- Hvis resultatet er
- Hvis resultatet af en eller anden grund ikke matcher nogen af disse værdier, udskriv
"Error". - Returnér variablen
resultfra metoden.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat