Tablice w Java
⚡ Inteligentne podsumowanie
Tablice w Java to kontenery o stałym rozmiarze, oparte na indeksach, które przechowują elementy jednego typu danych w ciągłej pamięci, zapewniając stały dostęp w czasie, wbudowane sprawdzanie ograniczeń i pole długości, dzięki czemu stanowią podstawę większości standardowych kolekcji bibliotecznych.
Co to jest Java Szyk?
A Java szyk to struktura o stałym rozmiarze, która przechowuje elementy jednego typu danych w ciągłej pamięci. Do każdego elementu można dotrzeć za pomocą indeksu zerowego, więc pierwszy element znajduje się na 0 i ostatni na length - 1. Tablice dziedziczą po Object i wdrożyć Serializable oraz Cloneablei może zawierać obiekty pierwotne lub odniesienia do obiektów.
Tablice zastępują długie ciągi zmiennych liczbowych. Rozważmy sześć niezależnych liczb całkowitych:
x0 = 0; x1 = 1; x2 = 2; x3 = 3; x4 = 4; x5 = 5;
Te same sześć wartości znajduje się w pojedynczej tablicy o długości sześciu:
x[0] = 0; x[1] = 1; x[2] = 2; x[3] = 3; x[4] = 4; x[5] = 5;
A pętla zmienna może sterować indeksem w nawiasach, więc trzy wiersze przetwarzają każdy element zamiast sześciu kopii:
for (int count = 0; count < 5; count++) { System.out.println(x[count]); }
Typy tablic w Java
Java tablice występują w dwóch kształtach:
- Tablica jednowymiarowa: płaska lista elementów.
- Tablica wielowymiarowa: tablica tablic, używana w siatkach i macierzach.
Zmienne tablicowe: deklaracja, konstrukcja i inicjalizacja
Korzystanie z tablicy to trzystopniowy proces:deklarować, konstruować z new, a następnie zainicjuj.
1) Zadeklaruj tablicę
Składnia:
<elementType>[] <arrayName>;
or (starsza forma w stylu C, nadal aktualna):
<elementType> <arrayName>[];
Przykład:
int[] intArray; // canonical form: brackets on the type int intArray2[]; // legacy C-style form, discouraged in new code
2) Zbuduj tablicę
Składnia:
arrayName = new dataType[size];
Przykład:
intArray = new int[10]; // defines that intArray will store 10 integer values
Deklaracja i konstrukcja połączone:
int[] intArray = new int[10];
3) Zainicjuj tablicę
intArray[0] = 1; // assigns 1 to the first element (index 0) intArray[1] = 2; // assigns 2 to the second element (index 1)
Deklaracja i inicjalizacja w jednym kroku używając literału tablicowego:
int[] intArray = {1, 2, 3, 4}; // initialises an integer array of length 4 where the first element is 1, // the second element is 2, and so on.
Pierwszy program tablicowy w Java
Krok 1) Skopiuj poniższy kod do edytora:
class ArrayDemo { public static void main(String args[]) { int array[] = new int[7]; for (int count = 0; count < 7; count++) { array[count] = count + 1; } for (int count = 0; count < 7; count++) { System.out.println("array[" + count + "] = " + array[count]); } // System.out.println("Length of Array = " + array.length); // array[8] = 10; } }
Krok 2) Zapisz, skompiluj i uruchom kod. Obserwuj wynik.
Oczekiwany wynik:
array[0] = 1 array[1] = 2 array[2] = 3 array[3] = 4 array[4] = 5 array[5] = 6 array[6] = 7
Krok 3) If x jest odniesieniem do tablicy, x.length Zwraca liczbę slotów. Odkomentuj pierwszy zakomentowany wiersz i uruchom ponownie:
Length of Array = 7
Krok 4) W odróżnieniu od C. Java Sprawdza granice przy każdym dostępie do tablicy. Odkomentuj drugi zakomentowany wiersz i uruchom ponownie:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at ArrayDemo.main(ArrayDemo.java:11) Command exited with non-zero status 1
Krok 5) JVM rzuca ArrayIndexOutOfBoundsExceptionW języku C ten sam dostęp zwróciłby śmieci z sąsiedniej pamięci zamiast zakończyć się niepowodzeniem.
Java Tablica: przekazywanie przez referencję
Tablice są przekazywane do metod przez referencję. Metoda otrzymuje kopię referencji, więc zmiany elementów wprowadzone w metodzie są widoczne dla wywołującego.
Przykład: tablice są przekazywane przez referencję.
Krok 1) Skopiuj poniższy kod do edytora:
class ArrayDemo { public static void passByReference(String a[]) { a[0] = "Changed"; } public static void main(String args[]) { String[] b = {"Apple", "Mango", "Orange"}; System.out.println("Before Function Call " + b[0]); ArrayDemo.passByReference(b); System.out.println("After Function Call " + b[0]); } }
Krok 2) Zapisz, skompiluj i uruchom kod. Obserwuj wynik.
Oczekiwany wynik:
Before Function Call Apple After Function Call Changed
Tablice wielowymiarowe w Java
Tablice wielowymiarowe to tablice tablic. Dodaj kolejny zestaw nawiasów kwadratowych dla każdego wymiaru. Aby utworzyć dwuwymiarową siatkę liczb całkowitych z czterema wierszami i pięcioma kolumnami:
int[][] twoD = new int[4][5];
Wystarczy określić rozmiar tylko pierwszego (najbardziej wysuniętego na lewo) wymiaru. Pozostałe wymiary można przypisać osobno, a każdy wiersz może mieć swoją własną długość, co ułatwia Java Tablice 2-D są prawdziwe poszarpane tablice.
Przykład:
public class Guru99 { public static void main(String[] args) { // Create a 2-dimensional array with 4 rows and 4 columns. int[][] twoD = new int[4][4]; // Assign three elements to it. twoD[0][0] = 1; twoD[1][1] = 2; twoD[3][2] = 3; System.out.print(twoD[0][0] + " "); } }
Oczekiwany wynik:
1

