Arrays.fill und copyOf
Füllen und vergrößern Sie Arrays
Arrays.fill und copyOf ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Arrays füllen
Arrays.fill setzt jedes Element eines Arrays auf denselben Wert. Die Methode verändert das Array direkt und eignet sich zum Initialisieren oder Zurücksetzen von Daten.
Ein Array vollständig füllen
Füllen Sie ein vollständiges Array mit einem Wert.
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));
}
}Einen Bereich füllen
Arrays.fill(array, from, to, value) füllt nur einen Teil des Arrays. Der Bereich umfasst from einschließlich und to ausschließlich.
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));
}
}Objektarrays füllen
Fill funktioniert auch bei Objektarrays. Beachten Sie, dass bei einem Objekt in jedem Feld auf dieselbe Referenz verwiesen wird.
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));
}
}Mit copyOf die Größe ändern
Arrays haben eine feste Länge. Um ein größeres oder kleineres Array zu erhalten, gibt Arrays.copyOf(array, newLength) ein neues Array mit der gewünschten Größe zurück.
Ein Array vergrößern
Wenn die neue Länge größer ist, erhalten zusätzliche Felder den Standardwert: 0 bei numerischen Typen, false bei boolean und null bei Objekten.
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));
}
}Ein Array verkleinern
Wenn die neue Länge kleiner ist, wird das Array gekürzt und nachfolgende Elemente werden entfernt.
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));
}
}Einen Bereich kopieren
Arrays.copyOfRange(array, from, to) kopiert einen Ausschnitt in ein neues Array. Auch hier ist from inklusive und to exklusive.
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 verändert das ursprüngliche Array nicht
Im Gegensatz zu fill lässt copyOf das ursprüngliche Array unverändert und gibt ein vollständig neues Array zurück. Das ursprüngliche Array und die Kopie sind unabhängig voneinander.
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));
}
}Ein manuelles Muster zum Ändern der Größe
Vor ArrayList vergrößerten Programme Arrays, indem sie deren Inhalte in ein größeres Array kopierten. copyOf verdoppelt die Kapazität in einem Aufruf.
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 im Vergleich zu copyOf
Merken Sie sich den Unterschied: fill überschreibt vorhandene Plätze direkt im Array und gibt void zurück; copyOf erstellt eine Kopie mit geänderter Größe und gibt sie zurück. Entscheiden Sie anhand dessen, ob Sie eine neue Länge benötigen.
Kurzer Test
Testen Sie Ihr Verständnis von fill und copyOf.
Zusammenfassung
Sie haben gelernt, Arrays zu füllen und ihre Größe zu ändern.
Arrays.fillsetzt alle Elemente oder einen Bereich davon direkt im Array auf einen Wert.Arrays.copyOfgibt ein neues Array mit einer bestimmten Länge zurück und füllt es bei Bedarf auf oder kürzt es.Arrays.copyOfRangekopiert einen Ausschnitt.- copyOf ist nicht destruktiv; fill verändert das Array.
Häufig gestellte Fragen
Ist die Lektion „Arrays.fill und copyOf“ kostenlos?
Ja — der vollständige Text von „Arrays.fill und copyOf“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Arrays.fill und copyOf“?
Füllen und vergrößern Sie Arrays Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Arrays.fill und copyOf“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Arrays.sort und Sortieren
- Arrays.binarySearch
- Arrays.fill und copyOf
- Arrays.equals und toString