Java Academy · Lektion

Arrays.fill och copyOf

Fyll och ändra storlek på arrayer

Lektion 3 av 413 steg

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.fill anger värdet för alla element eller ett intervall av element på plats.
  • Arrays.copyOf returnerar en ny array med en angiven längd och fyller ut eller trunkerar den.
  • Arrays.copyOfRange kopierar en del av en array.
  • copyOf är icke-destruktiv, medan fill ändrar arrayen.
Gratis att börja

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

  1. Arrays.sort och sortering
  2. Arrays.binarySearch
  3. Arrays.fill och copyOf
  4. Arrays.equals och toString
← Tillbaka till Java Academy