Вікіпідручник 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.9 first-letter Медіа Спеціальна Обговорення Користувач Обговорення користувача Вікіпідручник Обговорення Вікіпідручника Файл Обговорення файлу MediaWiki Обговорення MediaWiki Шаблон Обговорення шаблону Довідка Обговорення довідки Категорія Обговорення категорії Полиця Обговорення полиці Рецепт Обговорення рецепта Субтитри Обговорення субтитрів Модуль Обговорення модуля Подія Обговорення події Освоюємо Kotlin/Масиви 0 8362 41326 41307 2026-07-05T16:15:07Z Володимир Груша 985 /* Масиви з елементами змішаного типу */ 41326 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> ==Джерела== * [[https://kotlinlang.org/docs/arrays.html Масиви (оф. документація Kotlin) (англ)] [[Категорія:Освоюємо Kotlin]] {{Nav}} rwl0zi9fb12pxwmnjtsc1hj0she4o2u 41327 41326 2026-07-05T16:15:15Z Володимир Груша 985 /* Джерела */ 41327 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> ==Джерела== * [https://kotlinlang.org/docs/arrays.html Масиви (оф. документація Kotlin) (англ)] [[Категорія:Освоюємо Kotlin]] {{Nav}} e2dv3fahmsjr9cxnpnqpmc8hscjyfuu 41328 41327 2026-07-05T16:49:12Z Володимир Груша 985 /* Масиви з елементами змішаного типу */ 41328 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"> val mixedTypeArray: Array<Array<Any>> = arrayOf( arrayOf("Ім'я", 25, true), arrayOf("Інше ім'я", 30, false) ) </syntaxhighlight> Звернення елементів відбувається як і у звичайному багатовимірному масиві за індексами: <syntaxhighlight lang="kotlin"> // Доступ до елементів println(mixedTypeArray[0][0]) // Виведе: Ім'я println(mixedTypeArray[0][1]) // Виведе: 25 </syntaxhighlight> ==Функції для роботи з масивами== Існує ряд функцій для роботи з масивами. Наприклад функція sort() - для сортування масиву та shuffle() - для перемішування масиву. <syntaxhighlight lang="kotlin"> val simpleArray = arrayOf(2, 3, 5, 7, 8, 9) // Сортування елементів simpleArray.sort() println(simpleArray.joinToString()) //2, 3, 5, 7, 8, 9 // перемішування елементів у випадаковому порядку simpleArray.shuffle() println(simpleArray.joinToString()) //3, 7, 9, 2, 5, 8 </syntaxhighlight> ==Джерела== * [https://kotlinlang.org/docs/arrays.html Масиви (оф. документація Kotlin) (англ)] [[Категорія:Освоюємо Kotlin]] {{Nav}} fhq3pivags5ltxmm6ua86j68bvbpkxu 41329 41328 2026-07-05T16:50:35Z Володимир Груша 985 /* Функції для роботи з масивами */ 41329 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"> val mixedTypeArray: Array<Array<Any>> = arrayOf( arrayOf("Ім'я", 25, true), arrayOf("Інше ім'я", 30, false) ) </syntaxhighlight> Звернення елементів відбувається як і у звичайному багатовимірному масиві за індексами: <syntaxhighlight lang="kotlin"> // Доступ до елементів println(mixedTypeArray[0][0]) // Виведе: Ім'я println(mixedTypeArray[0][1]) // Виведе: 25 </syntaxhighlight> ==Функції для роботи з масивами== Існує ряд функцій для роботи з масивами. Наприклад функція sort() - для сортування масиву та shuffle() - для перемішування масиву. <syntaxhighlight lang="kotlin"> val simpleArray = arrayOf(8, 7, 5, 3, 2, 9) // Сортування елементів simpleArray.sort() println(simpleArray.joinToString()) //2, 3, 5, 7, 8, 9 // перемішування елементів у випадаковому порядку simpleArray.shuffle() println(simpleArray.joinToString()) //3, 7, 9, 2, 5, 8 </syntaxhighlight> ==Джерела== * [https://kotlinlang.org/docs/arrays.html Масиви (оф. документація Kotlin) (англ)] [[Категорія:Освоюємо Kotlin]] {{Nav}} diqtao012lvt7uzlkkdxfp7aes3c4ud 41330 41329 2026-07-05T16:59:08Z Володимир Груша 985 41330 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"> val mixedTypeArray: Array<Array<Any>> = arrayOf( arrayOf("Ім'я", 25, true), arrayOf("Інше ім'я", 30, false) ) </syntaxhighlight> Звернення елементів відбувається як і у звичайному багатовимірному масиві за індексами: <syntaxhighlight lang="kotlin"> // Доступ до елементів println(mixedTypeArray[0][0]) // Виведе: Ім'я println(mixedTypeArray[0][1]) // Виведе: 25 </syntaxhighlight> ==Функції для роботи з масивами== Існує ряд функцій для роботи з масивами. Наприклад функція sort() - для сортування масиву та shuffle() - для перемішування масиву. <syntaxhighlight lang="kotlin"> val simpleArray = arrayOf(8, 7, 5, 3, 2, 9) // Сортування елементів simpleArray.sort() println(simpleArray.joinToString()) //2, 3, 5, 7, 8, 9 // перемішування елементів у випадаковому порядку simpleArray.shuffle() println(simpleArray.joinToString()) //3, 7, 9, 2, 5, 8 </syntaxhighlight> Масиви підтримують багато операцій як і колекції, включаючи ітерацію, пошук, сортування, трансформування. Детальніше дивись офіційну документацію Kotlin. ==Джерела== * [https://kotlinlang.org/docs/arrays.html Масиви (оф. документація Kotlin) (англ)] [[Категорія:Освоюємо Kotlin]] {{Nav}} fc1x1ityi03g99c5526jmdnm71pd18z 41331 41330 2026-07-05T17:00:40Z Володимир Груша 985 41331 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"> val mixedTypeArray: Array<Array<Any>> = arrayOf( arrayOf("Ім'я", 25, true), arrayOf("Інше ім'я", 30, false) ) </syntaxhighlight> Звернення елементів відбувається як і у звичайному багатовимірному масиві за індексами: <syntaxhighlight lang="kotlin"> // Доступ до елементів println(mixedTypeArray[0][0]) // Виведе: Ім'я println(mixedTypeArray[0][1]) // Виведе: 25 </syntaxhighlight> ==Функції для роботи з масивами== Існує ряд функцій для роботи з масивами. Наприклад функція sort() - для сортування масиву та shuffle() - для перемішування масиву. <syntaxhighlight lang="kotlin"> val simpleArray = arrayOf(8, 7, 5, 3, 2, 9) // Сортування елементів simpleArray.sort() println(simpleArray.joinToString()) //2, 3, 5, 7, 8, 9 // перемішування елементів у випадаковому порядку simpleArray.shuffle() println(simpleArray.joinToString()) //3, 7, 9, 2, 5, 8 </syntaxhighlight> Масиви підтримують багато операцій як і колекції, включаючи ітерацію, пошук, сортування, трансформування. Детальніше дивись [https://kotlinlang.org/docs/arrays.html офіційну документацію Kotlin]. ==Джерела== * [https://kotlinlang.org/docs/arrays.html Масиви (оф. документація Kotlin) (англ)] [[Категорія:Освоюємо Kotlin]] {{Nav}} 9fnqbtyt24bo06zrk1ytzi8jem1lmsu