Масиви в Java

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr
array-magic_vertex-academy
Що таке масив у Java?

У статті "Змінні в Java. Створення змінної" ми говорили про те, що змінна – це певний контейнер, у якому може зберігатися значення для подальшого використання в програмі

Так ось:

array-concept_vertex-academy
  • звичайна змінна може містити лише 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 масивів?

Правильні відповіді:

massiv3_vertex-academy

Довжина цього масиву 6. Тому що в цьому масиві 6 чисел: 1, 8, 15, 30, 2, 3

massiv4_vertex-academy

Довжина цього масиву 2. Тому що в масиві 2 числа: 1 і 3

Довжина цього масиву 4. Тому що в масиві 4 слова: "Київ", "Львів", "Луцьк", "Одеса".

А як зробити так, щоб автоматично отримувати довжину масиву?

Підраховувати вручну кількість елементів у масиві – це добре, але якщо елементів дуже багато ... Навряд чи у Вас вистачить терпіння підрахувати 3 000 елементів. Якщо використовувати властивість масиву length, довжина масиву буде підрахована автоматично.

Наприклад, у нас є ось такий масив.  

Пишемо int k = array1.length; .

У результаті створиться змінна k, у якій буде знаходитися значення 3.

Спробуйте запустити ось цей код, щоб переконатися в цьому на практиці:


У будь-якому масиві значення елементів зберігаються під порядковими номерами (індексами)

Причому нумерація починається з "нуля". Пропонуємо розглянути на прикладах.

Приклад №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]

А як створити пустий масив?

array1_vertex-academy

У всіх попередніх прикладах ми створювали масив і відразу ініціалізували його якимись значеннями. Однак є можливість спочатку створити масив потрібного розміру, а пізніше наповнювати його значеннями (якщо нам при створенні невідомо, які значення там знаходитимуться). Наприклад, лікар каже жінці, що в неї буде двійня, але, якої статі будуть діти, поки не відомо. Ось Вам масив на 2 елементи типу "дитина", але значення поки не відомі.

Щоб створити такий масив, потрібно скористатися ключовим словом new. Тепер створення масиву буде виглядати так:

тип [] назва = new тип[розмір];

Запам'ятайте, що типдо "дорівнює" і після, якщо ми говоримо про масив з примітивних типів, повинен бути однаковим!

У майбутньому ми побачимо, що це правило може порушуватися, але це вже інша історія.

У програмі це виглядало б ось так:

Розберемо цей рядок коду:

За допомогою 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}

А як наповнити такий масив значеннями?

Спробуйте запустити цей код на своєму комп'ютері:

За допомогою ось цих рядків ми звертаємося до кожного елемента масиву і наповнюємо його потрібним значенням:

Тобто, якщо array1 [0] стоїть праворуч від "дорівнює", то ми отримуємо його значення, якщо зліва – присвоюємо йому значення.

А ці рядки коду ми додали, щоб Ви могли побачити, що таки так, кожному елементу масиву були присвоєні значення 5, 17, 350 відповідно.

У консолі Ви побачите:

5

17

350

Ще один важливий момент – розмір створеного масиву не можна змінити

Разом подивимося на ось цей рядок коду:

Як Ви думаєте, цим рядком коду ми створили масив? Відповідь – ні. Чому? Адже ми начебто:

  • вказали за допомогою [], що це масив
  • вказали за допомогою int, що масив цілочисельний
  • вказали, що назва масиву array1

А масив не створений ??? Так, масив не створений.

Масив створюється, коли під нього виділяється пам'ять. А виділяється пам'ять під масив тільки в момент виконання наступної сходинки:

тобто коли ми дописали  = new int [3];

або цієї:

Ви не можете додавати елементи в масив понад зазначену кількість, а не заповнені вами осередки просто будуть зберігати значення "0". У Java є інші інструменти, які дозволяють робити "безрозмірні" списки елементом. З ними Ви познайомитеся пізніше.


Підсумуємо:

1. Масив – це змінна, у яку можна покласти не одне, а відразу кілька значень.

2. Усі елементи масиву мають однаковий тип.

3. При створенні порожнього масиву елементів присвоюються значення залежно від типу даних масиву:

  • для int - 0
  • для float, double - 0.0
  • для String - значення null
  • для char - \0
  • для boolean - значення false

4. Розмір масиву не можна змінити після його створення.

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr
Самоучители--узнать детальнее--