A Java nyelvben a tömbök segítségével több azonos típusú értéket tárolhatsz egyetlen struktúrában. Más adatszerkezetektől eltérően a tömbök mérete létrehozás után rögzített. A tömb elemeit index segítségével rendelheted hozzá, vagy lekérdezheted belőle. A Java tömbök nulla alapú indexelést használnak: az első elem indexe 0, a második elem indexe 1, stb.
Íme a tömb inicializálásának szabványos szintaxisa:
type[] variableName = new type[size];
A type a tömb elemeinek típusa, amely lehet primitív típus (pl. int) vagy osztály (pl. String).
A size azon elemek száma, amelyeket ez a tömb tárolni fog (ez később nem változtatható meg).
A tömb létrehozása után az elemek az alapértelmezett értékeikre inicializálódnak (általában 0, false vagy null).
// Declare array with explicit size (size is 2)
int[] twoInts = new int[2];
A tömbök rövidített jelöléssel is definiálhatók, amely lehetővé teszi a tömb létrehozását és értékeinek beállítását is:
// Two equivalent ways to declare and initialize an array (size is 3)
int[] threeIntsV1 = new int[] { 4, 9, 7 };
int[] threeIntsV2 = { 4, 9, 7 };
Mivel a fordító most már meg tudja állapítani, hogy hány eleme lesz a tömbnek, a hossz elhagyható.
A tömb elemei szögletes zárójeles indexeléssel érhetők el és rendelhetők hozzá:
// Assign second element by index
twoInts[1] = 8;
// Retrieve the second element by index and assign to the int element
int secondElement = twoInts[1];
Ha a tömb érvényes indexein kívüli indexet próbálsz elérni, az IndexOutOfBoundsException kivételt eredményez.
A tömbök kezelhetők a tömbpéldány metódusainak vagy tulajdonságainak hívásával, illetve az Arrays osztályban definiált statikus metódusok használatával (ezeket általában csak generikus kódban használják).
A length tulajdonság a tömb hosszát tárolja.
Így érheted el:
int arrayLength = someArray.length;
A Java egy hasznos segédosztályt is biztosít, a java.util.Arrays osztályt, amely sok hasznos, tömbökkel kapcsolatos metódust tartalmaz (pl. Arrays.equals).
A Java támogatja a többdimenziós tömböket is, mint például int[][] arr = new int[3][4];, amelyek nagyon hasznosak lehetnek.
Az, hogy a tömb egyben gyűjtemény is, azt jelenti, hogy az értékek index alapján történő elérése mellett az összes értékén iterálhatsz egy for-each ciklus segítségével:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for(char vowel: vowels) {
// Output the vowel
System.out.print(vowel);
}
// => aeiou
Ha nagyobb kontrollt szeretnél afölött, hogy mely értékeken iterálj, használhatsz for ciklust:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for (int i = 0; i < 3; i++) {
// Output the vowel
System.out.print(vowels[i]);
}
// => aei