Arrays.fill och copyOf
Fyll och ändra storlek på arrayer
Arrays.fill och copyOf är en gratis lektion i Java Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Java Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Java Academy innehåller totalt 4 lektioner.
Fylla arrayer
Arrays.fill sätter varje element i en array till samma värde. Metoden ändrar arrayen på plats och är praktisk för att initiera eller återställa data.
En grundläggande fyllning
Fyll en hel array med ett värde.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = new int[5];
Arrays.fill(nums, 7);
System.out.println(Arrays.toString(nums));
}
}Fylla ett intervall
Arrays.fill(array, from, to, value) fyller endast en del av arrayen. Intervallet inkluderar from men exkluderar to.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = new int[6];
Arrays.fill(nums, 2, 5, 9);
System.out.println(Arrays.toString(nums));
}
}Fylla objektarrayer
Fill fungerar även på objektarrayer. Observera att varje plats pekar på samma referens när ni fyller arrayen med ett objekt.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] grid = new String[4];
Arrays.fill(grid, "empty");
System.out.println(Arrays.toString(grid));
}
}Ändra storlek med copyOf
Arrayer har en fast längd. Om ni behöver en större eller mindre array returnerar Arrays.copyOf(array, newLength) en ny array med den begärda storleken.
Utöka en array
När den nya längden är större får de extra platserna standardvärdet: 0 för numeriska typer, false för boolean och null för objekt.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {1, 2, 3};
int[] bigger = Arrays.copyOf(nums, 5);
System.out.println(Arrays.toString(bigger));
}
}Förminska en array
När den nya längden är mindre trunkeras arrayen och de efterföljande elementen tas bort.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5};
int[] smaller = Arrays.copyOf(nums, 3);
System.out.println(Arrays.toString(smaller));
}
}Kopiera ett intervall
Arrays.copyOfRange(array, from, to) kopierar en del till en ny array. Återigen är from inkluderande och to exkluderande.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {10, 20, 30, 40, 50};
int[] middle = Arrays.copyOfRange(nums, 1, 4);
System.out.println(Arrays.toString(middle));
}
}copyOf ändrar inte originalet
Till skillnad från fill lämnar copyOf den ursprungliga arrayen orörd och returnerar en helt ny array. Originalet och kopian är oberoende av varandra.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] original = {1, 2, 3};
int[] copy = Arrays.copyOf(original, 3);
copy[0] = 99;
System.out.println("Original: " + Arrays.toString(original));
System.out.println("Copy: " + Arrays.toString(copy));
}
}Ett manuellt sätt att ändra storlek
Innan ArrayList växte program arrayer genom att kopiera dem till en större array. copyOf fördubblar kapaciteten i ett enda anrop.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] data = {1, 2, 3, 4};
data = Arrays.copyOf(data, data.length * 2);
data[4] = 5;
System.out.println(Arrays.toString(data));
}
}fill jämfört med copyOf
Kom ihåg skillnaden: fill skriver över befintliga platser på plats och returnerar void, medan copyOf skapar en kopia med ändrad storlek och returnerar den. Välj utifrån om en ny längd behövs.
Snabbtest
Testa dina kunskaper om fill och copyOf.
Sammanfattning
Du har lärt dig att fylla och ändra storlek på arrayer.
Arrays.fillanger värdet för alla element eller ett intervall av element på plats.Arrays.copyOfreturnerar en ny array med en angiven längd och fyller ut eller trunkerar den.Arrays.copyOfRangekopierar en del av en array.- copyOf är icke-destruktiv, medan fill ändrar arrayen.
Lär dig Java med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 104
- Lektioner
- 374
Vanliga frågor
Är lektionen ”Arrays.fill och copyOf” gratis?
Ja – hela texten till ”Arrays.fill och copyOf” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Java Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Java Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Arrays.fill och copyOf”?
Fyll och ändra storlek på arrayer Ni övar på Java Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Java Academy?
Du behöver inga förkunskaper. Utbildningen i Java Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Arrays.fill och copyOf”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Java Academy-lektionen?
Ja. Varje Java Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Arrays.sort och sortering
- Arrays.binarySearch
- Arrays.fill och copyOf
- Arrays.equals och toString