МАСИВИ. МОВА ПРОГРАМУВАННЯ JAVA
Зміст уроку:
1. Що таке масив? Типи масивів.
2. Довжина масиву.
3. Порядковий номер елемента масиву – індекс.
4. Створення нового масиву та наповнення його елементами.
5. Приклади задач.
Звичайна змінна може містити лише 1 значення.
Масив – це проста змінна, яка може містити не одне, а відразу кілька значень, на відміну від звичайної змінної, що містить єдине значення. Масив – це такий собі "магічний" контейнер, у який ми можемо покласти відразу кілька значень ("коробочок").
Нижче наводено приклади масивів.
Приклад №1
Як бачите, ми створили цілочисельний масив, який назвали array1 і присвоїли три числа: 5, 17, 350
Приклад №2
Як бачите, ми створили рядковий масив, який назвали array2 і приcвоїли слово "Java" і фразу "is the best". Причому ми написали їх у подвійних лапках, тому що це масив типу String. Будь-який масив має довжину
Наприклад, довжина цього масиву = 3. Тому що в масиві 3 числа: 5, 17,
350
А довжина цього масиву = 2. Тому що в масиві 2 значення: "Java" і "is the best"
Якщо сказати простіше, то довжина масиву – це кількість елементів, які в ньому зберігаються (кількість маленьких "коробочок" у великій).
Пропонуємо тепер Вам відповісти, яка довжина цих 3 масивів?
Правильні відповіді:
|
Довжина цього масиву 6. Тому що в цьому масиві 6 чисел: 1, 8, 15, 30, 2, 3
Довжина цього масиву 2. Тому що в масиві 2 числа: 1 і 3 Довжина цього масиву 4. Тому що в масиві 4 слова: "Київ", "Львів", "Луцьк", "Одеса". |
А як зробити так, щоб автоматично отримувати довжину масиву?
Підраховувати вручну кількість елементів у масиві – це добре, але якщо елементів дуже багато ... Навряд чи у Вас вистачить терпіння підрахувати 3 000 елементів. Якщо використовувати властивість масиву length, довжина масиву буде підрахована автоматично.
Наприклад, у нас є ось такий масив.
Пишемо int k = array1.length;
У результаті створиться змінна k, у якій буде знаходитися значення 3.
Спробуйте запустити ось цей код, щоб переконатися в цьому на практиці:
1 class Test {
2
3 public static void main(String[] args) {
4 int [] array1 = {5,17,350};
5 int k = array1.length;
6 System.out.println(k);
7 }
8 }
У будь-якому масиві значення елементів зберігаються під порядковими номерами (індексами)
Причому нумерація починається з "нуля". Пропонуємо розглянути на прикладах.
Приклад №1
У цьому масиві:
5 – це елемент з порядковим номером 0
17 – це елемент з порядковим номером 1
350 – це елемент з порядковим номером 2
Приклад №2
У цьому масиві:
"Java " - це елемент з порядковим номером 0
"is the best" - це елемент з порядковим номером 1
Якщо Ви дуже любите солодощі, то можете уявити масив у вигляді макарунів.
Тобто індекс елемента – це його номер по порядку "мінус" 1.
Як видно, довжина масиву з макарунів = 3. І застосовується та ж логіка до порядкових номерів (індексів) у масиві.
Розберемося, навіщо в масиві значення елементів зберігаються під порядковими номерами (індексами)?
А відповідь дуже і дуже проста. Щоб можна було звертатися до конкретних елементів масиву за індексом. Оскільки з того, що ми в велику коробку хаотично накидаємо інші коробки, толку мало. Нам потрібно знати, де лежить маленька коробка з тим, що нам потрібно. Тому все, що ми кладемо у велику коробку, має свій номер.
Для того, щоб отримати те, що лежить у маленькій коробочці, нам потрібно звернутися до неї за індексом. Для цього пишемо назву змінної (велика коробка), після чого без пробілів у квадратних дужках вказуємо індекс коробки.
масив[номер]
Розглянемо це на практиці.
1. Як ми можемо звернутися до елемента масиву array1 під індексом 0? Відповідь: array1[0]
2. Як ми можемо звернутися до елемента масиву array1 під індексом 1? Відповідь: array1[1]
3. Як ми можемо звернутися до елемента масиву array1 під індексом 2? Відповідь: array1[2]
А як створити пустий масив?
У всіх попередніх прикладах ми створювали масив і відразу ініціалізували його якимись значеннями. Однак є можливість спочатку створити масив потрібного розміру, а пізніше наповнювати його значеннями (якщо нам при створенні невідомо, які значення там знаходитимуться). Наприклад, лікар каже жінці, що в неї буде двійня, але, якої статі будуть діти, поки не відомо. Ось Вам масив на 2 елементи типу
"дитина", але значення поки не відомі.
Щоб створити такий масив, потрібно скористатися ключовим словом new. Тепер створення масиву буде виглядати так:
тип [] назва = new тип[розмір];
Запам'ятайте, що типдо "дорівнює" і після, якщо ми говоримо про масив з примітивних типів, повинен бути однаковим!
У майбутньому ми побачимо, що це правило може порушуватися, але це вже інша історія.
У програмі це виглядало б ось так:
1 class Test {
2
3 public static void main(String[] args) {
4
5 int [] array1 = new int[3];
6
7 }
8 }
Розберемо цей рядок коду:
1 int[] array1=new int[3];
За допомогою int[] array1 ми вказали, що буде цілочисельний масив з ім'ям array1
За допомогою = new int[3]; ми створили порожній масив з 3 елементів.
Зверніть увагу: незважаючи на те, що масив array1 вважається порожнім, насправді в ньому все-таки є значення за замовчуванням... Під час створення порожнього масиву елементів присвоюються значення залежно від типів даних:
§ для int - 0
§ для float, double - 0.0 § для String - значення null § для char - \0
§ для boolean - значення false
§
Оскільки в нас у наведеному прикладі масив array1 цілочисельний, це значить, що всі 3 елементи в ньому дорівнюють нулю.. Тобто int [] array1 = new int [3]; це те ж саме, що і int [] array1 = {0,0,0}
А як наповнити такий масив значеннями?
Спробуйте запустити цей код на своєму комп'ютері:
1 class Test {
2
3 public static void main(String[] args) {
4
5 int[] array1 = new int[3];
6
7 array1[0]=5;
8 array1[1]=17;
9 array1[2]=350;
10
11 System.out.println(array1[0]);
12 System.out.println(array1[1]);
13 System.out.println(array1[2]);
14 }
15 }
За допомогою ось цих рядків ми звертаємося до кожного елемента масиву і наповнюємо його потрібним значенням:
array1[0]=5;
1 array1[1]=17;
2 array1[2]=350;
3
Тобто, якщо array1 [0] стоїть праворуч від "дорівнює", то ми отримуємо його значення, якщо зліва – присвоюємо йому значення.
А ці рядки коду ми додали, щоб Ви могли побачити, що таки так, кожному елементу масиву були присвоєні значення 5, 17, 350 відповідно.
1 System.out.println(array1[0]);
2 System.out.println(array1[1]);
3 System.out.println(array1[2]); У консолі Ви побачите:
5
17
350
Ще один важливий момент – розмір створеного масиву не можна змінити
Разом подивимося на ось цей рядок коду:
Як Ви думаєте, цим рядком коду ми створили масив? Відповідь – ні. Чому? Адже ми начебто:
§ вказали за допомогою [], що це масив
§ вказали за допомогою int, що масив цілочисельний
§ вказали, що назва масиву array1
А масив не створений ??? Так, масив не створений.
Масив створюється, коли під нього виділяється пам'ять. А виділяється пам'ять під масив тільки в момент виконання наступної сходинки:
Ви не можете додавати елементи в масив понад зазначену кількість, а не заповнені вами осередки просто будуть зберігати значення "0". У Java є інші інструменти, які дозволяють робити "безрозмірні" списки елементом. З ними Ви познайомитеся пізніше.
Підсумуємо:
1. Масив – це змінна, у яку можна покласти не одне, а відразу кілька значень.
2. Усі елементи масиву мають однаковий тип.
3. При створенні порожнього масиву елементів присвоюються значення залежно від типу даних масиву:
§ для int - 0
§ для float, double - 0.0 § для String - значення null § для char - \0
§ для boolean - значення false
4. Розмір масиву не можна змінити після його створення.