0Pricing
Java Academy · Lezione

Arrays.fill e copyOf

Riempia e ridimensioni gli array

Arrays.fill e copyOf è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.

Riempire gli array

Arrays.fill assegna a ogni elemento di un array lo stesso valore. Modifica l'array sul posto ed è utile per inizializzare o reimpostare i dati.

Un riempimento di base

Riempia un intero array con un unico valore.

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

Riempire un intervallo

Arrays.fill(array, from, to, value) riempie solo una parte dell'array. L'intervallo include from ed esclude 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));
    }
}

Riempire array di oggetti

Fill funziona anche sugli array di oggetti. Tenga presente che, quando si riempie l'array con un oggetto, ogni posizione contiene lo stesso riferimento.

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

Ridimensionare con copyOf

Gli array hanno una lunghezza fissa. Per ottenere un array più grande o più piccolo, Arrays.copyOf(array, newLength) restituisce un nuovo array della dimensione richiesta.

Espandere un array

Quando la nuova lunghezza è maggiore, le posizioni aggiuntive ricevono il valore predefinito: 0 per i tipi numerici, false per i booleani e null per gli oggetti.

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

Ridurre un array

Quando la nuova lunghezza è inferiore, l'array viene troncato e gli elementi finali vengono eliminati.

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

Copiare un intervallo

Arrays.copyOfRange(array, from, to) copia una porzione in un nuovo array. Anche in questo caso, from è incluso e to è escluso.

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 non modifica l'array originale

A differenza di fill, copyOf lascia intatto l'array originale e restituisce un array completamente nuovo. L'originale e la copia sono indipendenti.

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

Un modo manuale per ridimensionare

Prima di ArrayList, i programmi aumentavano gli array copiandoli in uno più grande. copyOf raddoppia la capacità con una sola chiamata.

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 e copyOf a confronto

Ricordi la differenza: fill sovrascrive direttamente gli slot esistenti e restituisce void; copyOf crea una copia ridimensionata e la restituisce. Scelga in base alla necessità o meno di una nuova lunghezza.

Verifica rapida

Verifichi la Sua comprensione di fill e copyOf.

Riepilogo

Ha imparato a riempire e ridimensionare gli array.

  • Arrays.fill imposta tutti gli elementi, o un intervallo di elementi, su un unico valore, direttamente nell'array.
  • Arrays.copyOf restituisce un nuovo array di una determinata lunghezza, aggiungendo valori predefiniti o troncando gli elementi.
  • Arrays.copyOfRange copia una porzione.
  • copyOf non è distruttivo; fill modifica l'array.

Domande Frequenti

La lezione «Arrays.fill e copyOf» è gratuita?

Sì — il testo completo di «Arrays.fill e copyOf» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.

Cosa imparerò in «Arrays.fill e copyOf»?

Riempia e ridimensioni gli array Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Arrays.fill e copyOf»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Arrays.sort e ordinamento
  2. Arrays.binarySearch
  3. Arrays.fill e copyOf
  4. Arrays.equals e toString
← Torna a Java Academy