У Java масиви - це спосіб зберігати кілька значень одного типу в одній структурі. На відміну від інших структур даних, масиви мають фіксований розмір, щойно їх створено. Елементи можна присвоювати масиву або отримувати з нього за допомогою індексу. Масиви в Java використовують індексацію від нуля: індекс першого елемента - 0, другого - 1 і так далі.
Ось стандартний синтаксис для ініціалізації масиву:
type[] variableName = new type[size];
type - це тип елементів масиву, який може бути примітивним типом (наприклад, int) або класом (наприклад, String).
size - це кількість елементів, які вміщуватиме цей масив (її не можна змінити пізніше).
Після створення масиву елементи ініціалізуються типовими значеннями (зазвичай 0, false або null).
// Declare array with explicit size (size is 2)
int[] twoInts = new int[2];
Масиви також можна визначати за допомогою скороченого запису, який дає змогу одночасно створити масив і задати його значення:
// Two equivalent ways to declare and initialize an array (size is 3)
int[] threeIntsV1 = new int[] { 4, 9, 7 };
int[] threeIntsV2 = { 4, 9, 7 };
Оскільки компілятор тепер може визначити, скільки елементів матиме масив, довжину можна опустити.
Елементи масиву можна присвоювати та читати за допомогою запису індексу в квадратних дужках:
// Assign second element by index
twoInts[1] = 8;
// Retrieve the second element by index and assign to the int element
int secondElement = twoInts[1];
Спроба звернутися до індексу, який виходить за межі допустимих індексів масиву, призводить до IndexOutOfBoundsException.
Масивами можна керувати, викликаючи методи чи властивості екземпляра масиву або використовуючи статичні методи, визначені в класі Arrays (зазвичай їх використовують лише в узагальненому коді).
Властивість length містить довжину масиву.
Звернутися до неї можна так:
int arrayLength = someArray.length;
Java також надає корисний допоміжний клас java.util.Arrays, який має багато корисних методів для роботи з масивами (наприклад, Arrays.equals).
Java також підтримує багатовимірні масиви, як-от int[][] arr = new int[3][4];, що буває дуже корисним.
Те, що масив також є колекцією, означає, що, крім доступу до значень за індексом, можна перебрати всі його значення за допомогою циклу for-each:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for(char vowel: vowels) {
// Output the vowel
System.out.print(vowel);
}
// => aeiou
Якщо потрібен більший контроль над тим, які значення перебирати, можна використати цикл for:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for (int i = 0; i < 3; i++) {
// Output the vowel
System.out.print(vowels[i]);
}
// => aei