Вікіпідручник
ukwikibooks
https://uk.wikibooks.org/wiki/%D0%93%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0
MediaWiki 1.47.0-wmf.5
first-letter
Медіа
Спеціальна
Обговорення
Користувач
Обговорення користувача
Вікіпідручник
Обговорення Вікіпідручника
Файл
Обговорення файлу
MediaWiki
Обговорення MediaWiki
Шаблон
Обговорення шаблону
Довідка
Обговорення довідки
Категорія
Обговорення категорії
Полиця
Обговорення полиці
Рецепт
Обговорення рецепта
TimedText
TimedText talk
Модуль
Обговорення модуля
Подія
Обговорення події
Освоюємо Kotlin/Масиви
0
8362
41306
39582
2026-06-02T17:25:35Z
Володимир Груша
985
/* Одновимірні масиви */
41306
wikitext
text/x-wiki
{{Nav|Освоюємо Kotlin|Масиви|programming|nocat=1}}
'''Масиви''' - це впорядкований набір однотипних даних певного розміру. В Kotlin масиви поділяються на два види. Один вид - це об'єктного типу масиви на основі класу Array та масиви примітивних типів. Нумерація елементів масиву в Kotlin починається з нуля.
==Одновимірні масиви==
Якщо говорити про перший вид масивів, то їх можна створити з допомогою конструктора класу Array або з допомогою функцій arrayOf(), arrayOfNulls() або emptyArray(). Тему конструкторів, класів та об'єктів детально розписана в розділі про [[Освоюємо Kotlin/Об'єктно-орієнтоване програмування|об'єктно-орієнтоване програмування]]. Для початку достатньо прийняти до уваги, що є такий спосіб створення масивів. Робота з масивами незалежить від того як вони створювались.
Приклад створення з конструктором:
<syntaxhighlight lang="kotlin" line start="1">
val initArray: Array<Int> = Array<Int>(3) { 0 } //пустий масив з трьох елементів
val numbersArray = Array(5) { index -> index } //заповнити масив значеннями індексів, тобто (0,1,2,3,4)
</syntaxhighlight>
Приклад створення масиву через функцію:
<syntaxhighlight lang="kotlin" line start="1">
var m = arrayOf(1, 2, 3, 2, 10) // оголошення масиву з п'ятьма числами типу Int
</syntaxhighlight>
Робота з масивами в Kotlin здійснюється наступним чином:
<syntaxhighlight lang="kotlin" line start="1" highlight="5">
var myArray = arrayOf(1, 2, 3) // оголошення масиву з трьома числами типу Int
println(myArray[0]) // звернення до першого (нульового) елемента масиву
println (myArray.size) // отримання розміру масива
val myArray2=arrayOf<String>("Mariyka", "Pasha", "Kolya") // явне вказання типу масиву
val myArray2: Array<String> = arrayOf("Mariyka", "Pasha", "Kolya")// можна також так вказувати тип
</syntaxhighlight>
Зверніть увагу, що після <code><String></code> в 5-му рядку ми ставимо пробіл, інакше компілятор видасть помилку про відсутність <code>></code>
Звернення до масиву можна реалізувати двома способами: 1) з використанням квадратних дужок; 2) з використанням функцій get() та set():
<syntaxhighlight lang="kotlin" line start="1">
val x:Array<Int>=arrayOf(1,3,5,6,3) // напис Array<Int> можна опустити
println ("[3]="+x.get(3)) // читаєм значення третьої комірки
println ("[4]="+x[4]) //читаємо значення четвертої комірки
x[2]=10 //змінюємо значення другої комірки на 10
x.set(3, 8) // змінюємо значення третьої комірки на 8
println("Змінений масив: ${x.joinToString()}") // вивід значень масиву в один рядок
</syntaxhighlight>
{{XConsole|1='''Результат:'''
<pre>
[3]=6
[4]=3
Змінений масив: 1, 3, 10, 8, 3
</pre>}}
Рекомендованим є спосіб звернення через квадратні дужки.
Вивести вміст масиву на консоль можна так:
<syntaxhighlight lang="kotlin" line start="1" highlight="2">
val myArray2: Array<String> = arrayOf("Mariyka", "Pasha", "Kolya")
println(myArray2.joinToString()) // Виведе: Mariyka, Pasha, Kolya
println (myArray2.contentToString()) // Виведе: [Mariyka, Pasha, Kolya]
</syntaxhighlight>
Можна створити пустий масив з певної кількості елементів, наприклад:
<syntaxhighlight lang="kotlin" line start="1" highlight="3">
val myArray = Array(10) { "" } // масив з 10-ти елементів типу String, з пустими рядками
val nullableArray = arrayOfNulls<String>(10) //String масив з невизначеними значеннями (null)
val intArray = IntArray(10) //для цілих чисел можна так створити масив з десятьма нулями
val intArray = Array(10) { 0 } // те ж саме цілочисельний масив з десятьма нулями
</syntaxhighlight>
Зверніть увагу на третій рядок. Всі базові (примітивні) типи мають свої реалізації масивів для ефективнішої роботи, тобто існує ByteArray, DoubleArray і т.п. Робота з ними дещо швидша. Так, масив цілих чисел типу IntArray можна задати так:
<syntaxhighlight lang="kotlin" line start="1">
val x:IntArray=intArrayOf(1,3,5,6,3) //IntArray
</syntaxhighlight>
Аналогічно працюємо і з іншими типами даних.
Якщо масив визначається не з допомогою ключового слова var, а з допомогою val, то створену змінну не можна буде перенаправити на інший масив. При цьому елементи масиву можна змінювати. Змінну масиву оголошену з var можна перенаправити на інший масив, але лише того ж типу, що і перший масив. Тобто, якщо початковий масив був Int, то можна перенаправити змінну лише на масив також Int типу.
Перебрати елементи масиву по порядку можна так:
<syntaxhighlight lang="kotlin" line start="1">
val myArray2: Array<String> = arrayOf("Mariyka", "Pasha", "Kolya", "Nastya", "Ніна")
myArray2.forEach {
println("Name: $it") // використовуємо ключове слово it
}
</syntaxhighlight>
{{XConsole|1='''Результат:'''
<pre>
Name: Mariyka
Name: Pasha
Name: Kolya
Name: Nastya
Name: Ніна
</pre>}}
Інший спосіб перебрати масиви - це цикли (див. розділ «[[Освоюємо Kotlin/Цикли|Цикли]]»)
==Багатовимірні масиви==
Двовимірний масив можна створити так:
<syntaxhighlight lang="kotlin" line start="1">
val matrix = arrayOf(
arrayOf(1, 2, 3),
arrayOf(4, 5, 6),
arrayOf(7, 8, 9)
)
</syntaxhighlight>
Таким чином ми створили двовимірний масив (таблицю), де кожен внутрішній масив є рядком.
Масив 3x4 з заповненням нулями можна створити так:
<syntaxhighlight lang="kotlin" line start="1">
val array = Array(3) { Array(4) { 0 } }
</syntaxhighlight>
Звернення до елементів двовимірного масиву:
<syntaxhighlight lang="kotlin" line start="1">
val element = matrix[1][2]
</syntaxhighlight>
Рядки в двовимірному масиві, при потребі, можуть мати різну довжину.
Щоб отримати кількість рядків (перший вимір), використовуйте <code>array.size</code>. Щоб отримати кількість стовпців (другий вимір) у конкретному рядку, використовуйте <code>array[0].size</code>.
==Масиви з елементами змішаного типу==
В Kotlin можна створити масив з елементами змішаного типу використовуючи тип Any:
<syntaxhighlight lang="kotlin" line start="1">
val mixedTypeArray: Array<Array<Any>> = arrayOf(
arrayOf("Ім'я", 25, true),
arrayOf("Інше ім'я", 30, false)
)
</syntaxhighlight>
Звернення елементів відбувається як і у звичайному багатовимірному масиві за індексами:
<syntaxhighlight lang="kotlin" line start="1">
// Доступ до елементів
println(mixedTypeArray[0][0]) // Виведе: Ім'я
println(mixedTypeArray[0][1]) // Виведе: 25
</syntaxhighlight>
[[Категорія:Освоюємо Kotlin]]
{{Nav}}
bfvufclkow5n18j5lv2d916p1obk9rt
41307
41306
2026-06-02T17:32:56Z
Володимир Груша
985
/* Одновимірні масиви */
41307
wikitext
text/x-wiki
{{Nav|Освоюємо Kotlin|Масиви|programming|nocat=1}}
'''Масиви''' - це впорядкований набір однотипних даних певного розміру. В Kotlin масиви поділяються на два види. Один вид - це об'єктного типу масиви на основі класу Array та масиви примітивних типів. Нумерація елементів масиву в Kotlin починається з нуля.
==Одновимірні масиви==
Якщо говорити про перший вид масивів, то їх можна створити з допомогою конструктора класу Array або з допомогою функцій arrayOf(), arrayOfNulls() або emptyArray(). Тему конструкторів, класів та об'єктів детально розписана в розділі про [[Освоюємо Kotlin/Об'єктно-орієнтоване програмування|об'єктно-орієнтоване програмування]]. Для початку достатньо прийняти до уваги, що є такий спосіб створення масивів. Робота з масивами незалежить від того як вони створювались.
Приклад створення з конструктором:
<syntaxhighlight lang="kotlin" line start="1">
val initArray: Array<Int> = Array<Int>(3) { 0 } //пустий масив з трьох елементів
val numbersArray = Array(5) { index -> index } //заповнити масив значеннями індексів, тобто (0,1,2,3,4)
val numberArray2: Array<Int> = Array(5){it} // те ж саме, що і попередній рядок
</syntaxhighlight>
Приклад створення масиву через функцію:
<syntaxhighlight lang="kotlin" line start="1">
var m = arrayOf(1, 2, 3, 2, 10) // оголошення масиву з п'ятьма числами типу Int
</syntaxhighlight>
Робота з масивами в Kotlin здійснюється наступним чином:
<syntaxhighlight lang="kotlin" line start="1" highlight="5">
var myArray = arrayOf(1, 2, 3) // оголошення масиву з трьома числами типу Int
println(myArray[0]) // звернення до першого (нульового) елемента масиву
println (myArray.size) // отримання розміру масива
val myArray2=arrayOf<String>("Mariyka", "Pasha", "Kolya") // явне вказання типу масиву
val myArray2: Array<String> = arrayOf("Mariyka", "Pasha", "Kolya")// можна також так вказувати тип
</syntaxhighlight>
Зверніть увагу, що після <code><String></code> в 5-му рядку ми ставимо пробіл, інакше компілятор видасть помилку про відсутність <code>></code>
Звернення до масиву можна реалізувати двома способами: 1) з використанням квадратних дужок; 2) з використанням функцій get() та set():
<syntaxhighlight lang="kotlin" line start="1">
val x:Array<Int>=arrayOf(1,3,5,6,3) // напис Array<Int> можна опустити
println ("[3]="+x.get(3)) // читаєм значення третьої комірки
println ("[4]="+x[4]) //читаємо значення четвертої комірки
x[2]=10 //змінюємо значення другої комірки на 10
x.set(3, 8) // змінюємо значення третьої комірки на 8
println("Змінений масив: ${x.joinToString()}") // вивід значень масиву в один рядок
</syntaxhighlight>
{{XConsole|1='''Результат:'''
<pre>
[3]=6
[4]=3
Змінений масив: 1, 3, 10, 8, 3
</pre>}}
Рекомендованим є спосіб звернення через квадратні дужки.
Вивести вміст масиву на консоль можна так:
<syntaxhighlight lang="kotlin" line start="1" highlight="2">
val myArray2: Array<String> = arrayOf("Mariyka", "Pasha", "Kolya")
println(myArray2.joinToString()) // Виведе: Mariyka, Pasha, Kolya
println (myArray2.contentToString()) // Виведе: [Mariyka, Pasha, Kolya]
</syntaxhighlight>
Можна створити пустий масив з певної кількості елементів, наприклад:
<syntaxhighlight lang="kotlin" line start="1" highlight="3">
val myArray = Array(10) { "" } // масив з 10-ти елементів типу String, з пустими рядками
val nullableArray = arrayOfNulls<String>(10) //String масив з невизначеними значеннями (null)
val intArray = IntArray(10) //для цілих чисел можна так створити масив з десятьма нулями
val intArray = Array(10) { 0 } // те ж саме цілочисельний масив з десятьма нулями
</syntaxhighlight>
Зверніть увагу на третій рядок. Всі базові (примітивні) типи мають свої реалізації масивів для ефективнішої роботи, тобто існує ByteArray, DoubleArray і т.п. Робота з ними дещо швидша. Так, масив цілих чисел типу IntArray можна задати так:
<syntaxhighlight lang="kotlin" line start="1">
val x:IntArray=intArrayOf(1,3,5,6,3) //IntArray
</syntaxhighlight>
Аналогічно працюємо і з іншими типами даних.
Якщо масив визначається не з допомогою ключового слова var, а з допомогою val, то створену змінну не можна буде перенаправити на інший масив. При цьому елементи масиву можна змінювати. Змінну масиву оголошену з var можна перенаправити на інший масив, але лише того ж типу, що і перший масив. Тобто, якщо початковий масив був Int, то можна перенаправити змінну лише на масив також Int типу.
Перебрати елементи масиву по порядку можна так:
<syntaxhighlight lang="kotlin" line start="1">
val myArray2: Array<String> = arrayOf("Mariyka", "Pasha", "Kolya", "Nastya", "Ніна")
myArray2.forEach {
println("Name: $it") // використовуємо ключове слово it
}
</syntaxhighlight>
{{XConsole|1='''Результат:'''
<pre>
Name: Mariyka
Name: Pasha
Name: Kolya
Name: Nastya
Name: Ніна
</pre>}}
Інший спосіб перебрати масиви - це цикли (див. розділ «[[Освоюємо Kotlin/Цикли|Цикли]]»)
==Багатовимірні масиви==
Двовимірний масив можна створити так:
<syntaxhighlight lang="kotlin" line start="1">
val matrix = arrayOf(
arrayOf(1, 2, 3),
arrayOf(4, 5, 6),
arrayOf(7, 8, 9)
)
</syntaxhighlight>
Таким чином ми створили двовимірний масив (таблицю), де кожен внутрішній масив є рядком.
Масив 3x4 з заповненням нулями можна створити так:
<syntaxhighlight lang="kotlin" line start="1">
val array = Array(3) { Array(4) { 0 } }
</syntaxhighlight>
Звернення до елементів двовимірного масиву:
<syntaxhighlight lang="kotlin" line start="1">
val element = matrix[1][2]
</syntaxhighlight>
Рядки в двовимірному масиві, при потребі, можуть мати різну довжину.
Щоб отримати кількість рядків (перший вимір), використовуйте <code>array.size</code>. Щоб отримати кількість стовпців (другий вимір) у конкретному рядку, використовуйте <code>array[0].size</code>.
==Масиви з елементами змішаного типу==
В Kotlin можна створити масив з елементами змішаного типу використовуючи тип Any:
<syntaxhighlight lang="kotlin" line start="1">
val mixedTypeArray: Array<Array<Any>> = arrayOf(
arrayOf("Ім'я", 25, true),
arrayOf("Інше ім'я", 30, false)
)
</syntaxhighlight>
Звернення елементів відбувається як і у звичайному багатовимірному масиві за індексами:
<syntaxhighlight lang="kotlin" line start="1">
// Доступ до елементів
println(mixedTypeArray[0][0]) // Виведе: Ім'я
println(mixedTypeArray[0][1]) // Виведе: 25
</syntaxhighlight>
[[Категорія:Освоюємо Kotlin]]
{{Nav}}
m0sobgopersf015an1dwrsvknakqzv9