Stały rozmiar tablicy i powiększanie kopią

Tablice - Podstawy Javy (Java)

Właściwości tablic w Javie: Tablice mają stały rozmiar, który jest ustalany podczas tworzenia Nie można dynamicznie zmienić rozmiaru istniejącej tablicy Aby "zwiększyć" rozmiar tablicy, należy: - Utworzyć nową tablicę o pożądanym rozmiarze - Skopiować elementy ze starej tablicy do nowej - Przypisać referencję do nowej tablicy Metody kopiowania tablic: Ręczne kopiowanie za pomocą pętli Użycie metody System.arraycopy() Alternatywnie można użyć Arrays.copyOf() (nie pokazane w przykładzie) Ważne uwagi: Próba dostępu do indeksu poza rozmiarem tablicy skutkuje ArrayIndexOutOfBoundsException Tablica po utworzeniu ma zawsze zainicjalizowane elementy wartościami domyślnymi (0 dla typów liczbowych, null dla obiektów) Referencja do starej tablicy może zostać usunięta przez Garbage Collector, gdy nie jest już używana

public class Main {
  public static void main(String[] args) {
    // Inicjalizacja tablicy o określonym rozmiarze
    int[] numbers = new int[5];
    System.out.println("Początkowy rozmiar tablicy: " + numbers.length);
    
    // Wypełnienie tablicy danymi
    for (int i = 0; i < numbers.length; i++) {
      numbers[i] = i + 1;
    }

    // Próba "powiększenia" tablicy
    System.out.println("\nTworzenie nowej, większej tablicy:");
    int[] largerArray = new int[10];
    
    // Kopiowanie elementów ze starej tablicy do nowej
    for (int i = 0; i < numbers.length; i++) {
      largerArray[i] = numbers[i];
    }

    // Wypełnienie pozostałych elementów
    for (int i = numbers.length; i < largerArray.length; i++) {
      largerArray[i] = i + 1;
    }

    // Wyświetlenie obu tablic
    System.out.println("Oryginalna tablica:");
    for (int number : numbers) {
      System.out.print(number + " ");
    }

    System.out.println("\nNowa, większa tablica:");
    for (int number : largerArray) {
      System.out.print(number + " ");
    }

    // Alternatywna metoda kopiowania za pomocą System.arraycopy
    int[] anotherArray = new int[10];
    System.arraycopy(numbers, 0, anotherArray, 0, numbers.length);
  }
}

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Podstawy Javy · Zaloguj się, aby zapisać postęp na koncie.