0Pricing
Java Academy · Lekcja

Arrays.fill i copyOf

Wypełniaj i zmieniaj rozmiar tablic

Arrays.fill i copyOf to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 4 lekcji w sumie.

Wypełnianie tablic

Arrays.fill ustawia każdy element tablicy na tę samą wartość. Modyfikuje tablicę w miejscu i jest przydatne do inicjowania lub resetowania danych.

Podstawowe wypełnianie

Wypełnij całą tablicę jedną wartością.

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

Wypełnianie zakresu

Arrays.fill(array, from, to, value) wypełnia tylko część tablicy. Zakres obejmuje from, ale nie obejmuje 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));
    }
}

Wypełnianie tablic obiektów

Metoda fill działa także na tablicach obiektów. Pamiętaj, że po wypełnieniu obiektem każdy element wskazuje na tę samą referencję.

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

Zmiana rozmiaru za pomocą copyOf

Tablice mają stałą długość. Aby uzyskać większą lub mniejszą tablicę, wywołaj Arrays.copyOf(array, newLength), które zwraca nową tablicę o żądanym rozmiarze.

Powiększanie tablicy

Gdy nowa długość jest większa, dodatkowe elementy otrzymują wartość domyślną: 0 dla typów liczbowych, false dla typu boolean i null dla obiektów.

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

Zmniejszanie tablicy

Gdy nowa długość jest mniejsza, tablica zostaje obcięta, a końcowe elementy są usuwane.

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

Kopiowanie zakresu

Arrays.copyOfRange(array, from, to) kopiuje fragment do nowej tablicy. Ponownie from jest włączny, a to wyłączny.

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 nie modyfikuje tablicy

W przeciwieństwie do fill, copyOf pozostawia oryginalną tablicę bez zmian i zwraca zupełnie nową tablicę. Oryginał i kopia są niezależne.

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

Ręczny sposób zmiany rozmiaru

Przed wprowadzeniem ArrayList programy powiększały tablice, kopiując je do większej tablicy. copyOf podwaja pojemność w jednym wywołaniu.

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

Proszę pamiętać o różnicy: fill nadpisuje istniejące pola w miejscu i zwraca void, natomiast copyOf tworzy kopię o zmienionym rozmiarze i ją zwraca. Wyboru należy dokonać w zależności od tego, czy potrzebna jest nowa długość.

Szybkie sprawdzenie

Proszę sprawdzić swoje rozumienie działania fill i copyOf.

Podsumowanie

Nauczyli się Państwo wypełniać tablice i zmieniać ich rozmiar.

  • Arrays.fill ustawia wszystkie elementy lub elementy wybranego zakresu na jedną wartość, w miejscu.
  • Arrays.copyOf zwraca nową tablicę o określonej długości, uzupełniając ją lub obcinając.
  • Arrays.copyOfRange kopiuje fragment.
  • copyOf nie niszczy danych, a fill modyfikuje tablicę.

Często zadawane pytania

Czy lekcja „Arrays.fill i copyOf” jest bezpłatna?

Tak — pełny tekst „Arrays.fill i copyOf” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Arrays.fill i copyOf”?

Wypełniaj i zmieniaj rozmiar tablic Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Java Academy?

Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Arrays.fill i copyOf”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?

Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Arrays.sort i sortowanie
  2. Arrays.binarySearch
  3. Arrays.fill i copyOf
  4. Arrays.equals i toString
← Powrót do Java Academy