Масив - це впорядкований набір однотипних елементів, на які посилаються по спільному імені. Це доволі зручний засіб групування інформації. Масиви можна створювати з елементів будь-якого типу. До конкретного елементу в масиві звертаються по індексу (номеру). Вони можуть бути як одновимірні так і багатовимірні.

Одновимірні масиви Одновимірні масиви - це список однотипних елементів. Загальний формат оголошення такого масиву:

тип-елементів назва-масиву[];

Наприклад int month_days[]; // масив цілих чисел Існує також інша форма оголошення масиву: int[] month_days; Проте для того, щоб масив почав існувати необхідно виділити під нього пам'ять, за допомогою операції new.

назва-масиву = new тип-елементів [розмір];

де розмір - планована кількість елементів у масиві. month_days = new int; або зразу ж: int month_days[] = new int; Таким чином відбувається виділення пам'яті під масив і ініціалізації елементів масиву нулями. В подальшому можна напряму звертатися до елементів масиву вказуючи індекс у квадратних дужках. Нумерація елементів в масиві в java відбувається з нуля. Тобто в наведеному прикладі звернення до першого(нульового) елемента - month_days, а до останнього - month_days. Java не дозволить програмі звернутися поза межі масиву, щоправда помилка буде вказана лише на етапі виконання програми через викидання винятку(виключення). month_days = 30; System.out.println(month_days); Масиви також можна ініціалізувати зразу ж при їхньому оголошенні, не використовуючи операції new, аналогічно як це відбувається при роботі з простими типами даних.

Наступний приклад зразу ж при оголошенні ініціалізує масив month_days[] кількістю днів в місяцях. public class DaysOfMonth { public static void main(String[] args) { int month_days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //оголошуємо та ініціалізуємо масив System.out.println("Травень має " + month_days + " день"); // вивід на консоль

Результат виконання на екрані: Травень має 31 день

Наступний приклад демонструє знаходження максимального числа в одновимірному масиві. public class ArrayMax { public static void main(String[] args) { double array[] = {1.1, 2.2, 1.1, 3.2, 1.2, 2.1}; double max = array; for (int i = 0; i < 6; i++) { if (max < array[i]) max = array[i];

System.out.println("Максимальне число в масиві: " + max);

Як бачимо спочатку змінній max присвоюється значення нульового елементу масиву, після чого в циклі іде послідовне порівняння з кожним наступним числом до останнього. Якщо при порівнянні чергове значення в масиві більше за максимальне в змінній max, то змінній max присвоюється дане значення. Як Ви уже зрозуміли, по закінченню циклу у змінній max міститиметься максимальне значення, яке і буде виведене на консоль: Максимальне число в масиві: 3.2

В Java масиви є спеціальними об’єктами (про об’єкти детальніше в наступних розділах присв’ячних об’єтно-орієнтованому програмуванню), що забезпечує деяку додаткову функціональність масивам. Зокрема, можна дізнатися довжину масиву таким чином array.length. Для вищенаведеного прикладу можна замінити рядок з циклом таким чином: for (int i =0; i < array.length; i++){

Багатовимірні масиви Багатовимірні масиви по суті – це масив масивів. Робота з багатовимірними масивами подібна до роботи з одновимірними. Відмінність лише в тому, що використовуються додаткові квадратні дужки. Переважно використовуються двовимірні масиви, які служать для роботи з табличними даними та трьохвимірні масиви. Двовимірний масив та трьохвимірний, можна оголосити наступним чином: int twoD[][] = new int ; //створення масиву 4x5 int threeD[][][] = new int; //створення масиву 5х5х5 Для двовимірного лівий індекс означає номер рядка, а правий номер стовпця. Це можна уявити наступним чином: [0,0][0,1][0,2][0,3][0,4] [1,0][1,1][1,2][1,3][1,4] [2,0][2,1][2,2][2,3][2,4] [3,0][3,1][3,2][3,3][3,4] Трьохвимірний масив можна уявити у вигляді куба. Крім номера рядка і номера стовпця, додається ще індекс елемента вглибину.

Наступна програма створює масив 5 на 4, заповнює його випадковими числами і виводить на екран. import java.util.Random; // імпортуємо клас Random

public class RandomArray { public static void main(String[] args) { int m = 5, n = 4; //оголошуємо і ініцілізуємо змінні з розмірами масиву int Array[][] = new int[m][n]; //оголошуємо і ініціалізуємо масив Random generator = new Random(); // створюємо генератор випадкович чисел int gn; //змінна в яку буде записуватися згенероване генератором число

/* заповнюємо масив випадковими числами */ for (int i = 0; i < m; i++) //проходимось по стовпцях for (int j = 0; j < n; j++) { //проходимось по рядках gn = generator.nextInt(100); //генерація випадкового числа від 0 до 100; Array[i][j] = gn; //записуємо згенероване випадкове число

/* Виводимо результат */ for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) // зверніть увагу на відсутність фігурної дужки System.out.print(Array[i][j] + " ");//даний рядок відноситься до масиву по j System.out.println(); //виводимо символи переводу каретки і нового рядка //після кожного проходження стовпцевих елементів рядка

В результаті на екрані одержимо: 94 47 65 0 99 20 60 69 80 33 63 73 35 50 48 81 39 19 4 85

В наведеному прикладі в кожному рядку однакова кількість елементів(стовбців). В Java можна створити двовимірні масиви з різною кількістю елементів в рядках. int twoD[][] = new int[]; //створюємо двовимірний масив з 5-ма рядками twoD = new int; // виділяємо пам’ять для 5-ти елементів нульового рядка twoD = new int; // перший рядок матиме 4-ри елементи twoD = new int; // другий - 3 twoD = new int; // третій - 2 twoD = new int; // четвертий – 1 Використання таких нерівних (нерегулярних) масивів не рекомендується, оскільки з ними важче працювати і можна припуститися ряд помилок, але в деяких ситуаціях можуть бути доволі корисними.

Як і з одновимірними масивами. Ми можемо зразу ж ініціалізувати масив необхідними значеннями при його оголошенні.

Приклад - Array2.java public class Array2 { public static void main(String[] args) {

int[][] Array= { {5, 6, 1, 3}, {3, 4, 2, 1}, {1, 2, 2, 2}

for (int i = 0; i < 3; i++){ for (int j = 0; j < 4; j++) System.out.print (Array[i][j]+" "); System.out.println();

Результат виконання: 5 6 1 3 3 4 2 1 1 2 2 2