Класс Array. Назначение. Массивы данных. Способы создания массива
Содержание
- 1. Массив. Класс Array. Способы создания массива
- 2. Способы создания массива типа Array
- Связанные темы
Поиск на других ресурсах:
1. Массив. Класс Array. Способы создания массива
В языке Kotlin массивы представлены классом Array. Чтобы объявить массив, нужно указать его тип в качестве параметра между парой символов < >.
var ArrayName : Array<T>
здесь
- ArrayName – имя массива;
- T – тип элементов массива (Int, Double, String, Char и других).
Чтобы создать массив типа Array<T>, нужно использовать один из следующих способов:
- вызвать метод arrayOf(). Этот способ создает массив с элементами указанного типа;
- использовать конструктор класса Array на основе указанного лямбда-выражения;
- использовать метод arrayOfNulls(). Этот метод создает массив заданного размера, в котором все элементы равны null.
⇑
2. Способы создания массива типа Array
2.1. Использование метода arrayOf()
Метод arrayOf() создает массив указанного типа. В наиболее общем случае использование метода в программе для создания массива может иметь несколько вариантов реализации.
// Создать массив на основании перечня элементов val arrName1 = arrayOf(vararg elements : T) val arrName3 = arrayOf(vararg elements : T) // Создать пустой массив var arrName2 = arrayOf() var arrName4 = arrayOf()
здесь
- arrName1, arrName2, arrName3, arrName4 – названия создаваемых массивов;
- T – тип елементов массива;
- elements – перечень элементов массива, разделенных символом ‘,’ (запятая).
Если при вызове метода arrayOf() не указаны параметры, то создается пустой массив.
Ключевые слова var и val имеют отношение к переменным arrName1, arrName2, arrName3, arrName4. Ключевое слово val предполагает одноразовое создание массива, связанного с переменной. Ключевое слово var определяет, что массив может быть создан заново, например
// Объявление массива как var-массива var arrayName : Array<T> = ... // Повторное использование имени arrayName для массива arrayName = ...
⇑
2.1.1. Создание и заполнение массива чисел типа Int
// Создание массива. Метод arrayOf() // Создать пустой массив целых чисел и заполнить его // 1. Объявить переменную типа Array<Int> var AI : Array<Int> // 2. Создать пустой массив AI = arrayOf() // 3. Заполнить массив числами: [ 2, 4, 6, ..., 20 ] for (i in IntRange(2, 20) step 2) AI += i // 4. Вывести массив for (i in AI) print(i.toString() + " ")
⇑
2.1.2. Создание и заполнение массива строк типа String
В данном примере используется форма заполнения строк непосредственно в методе arrayOf().
// Создание массива. Метод arrayOf() // 1.Создать массив строк, который содержит названия дней недели var AS : Array<String> = arrayOf("Sunday", "Monday", "Tuesday", "Wednesday", "Thirsday", "Friday", "Saturday" ) // 2. Вывести названия дней недели в столбец for (s in AS) println(s)
⇑
2.1.3. Создание и заполнение массива чисел типа Double
В примере используется реализация метода arrayOf(), получающая перечень значений массива в виде параметра.
// Создание массива. Метод arrayOf() // 1. Создать массив чисел типа Double var AD : Array<Double> = arrayOf(2.8, 3.5, -1.4, 9.2) // 2. Вывести массив чисел AD for (x in AD) print(x.toString() + " ")
⇑
2.1.4. Создание массива символов типа Char
В примере создается массив AC, содержащий список символов, обозначающих число в шестнадцатеричной системе исчисления:
- цифры от ‘0’ до ‘9’;
- буквы латинского алфавита ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’.
// Создание массива. Метод arrayOf() // 1. Создать массив символов типа Char: // [ '0', '1', '2', ..., '9', 'A', 'B', 'C', 'D', 'E', 'F' ] var AC : Array<Char> = arrayOf() // 2. Сформировать массив // 2.1. Добавить цифры for (i in IntRange(0, 9)) AC += ('0' + i).toChar() // 2.2. Добавить буквы 'A', ..., 'F' for (c in CharRange('A', 'F')) AC += c // 3. Вывести массив чисел for (c in AC) print(c + " ")
⇑
2.2. Использование конструктора Array
Конструктор класса Array получает лямбда-выражение в качестве параметра. Это лямбда-выражение заполняет значениями элементы массива.
В наиболее общем случае создание массива класса Array с помощью конструктора имеет вид:
var ArrayName = Array<T>(size) { lambda_expression }
здесь
- ArrayName – имя создаваемого массива;
- T – тип элементов массива;
- size – количество элементов (размер) в массиве;
- lambda_expression – лямбда-выражение, которое формирует значения элементов массива.
Перед объявлением массива можно использовать ключевое слово val
val ArrayName = Array<T>(size) { lambda_expression }
которое будет означать, что переменная-массив ArrayName не может быть использована для создания нового массива. Попытка повторного создания нового массива
ArrayName = ...
будет выдавать ошибку компиляции.
⇑
2.2.1. Сформировать массив чисел типа Double
// Использование конструктора класса Array. // 1. Создать массив квадратов чисел от 0 до 9 типа Double. // При создании массива используется лямбда-выражение var AD = Array<Double>(10) { i -> (i*i).toDouble() } // 2. Вывести массив AD for (i in AD) print(i.toString() + " ") println()
⇑
2.2.2. Сформировать массив строк типа String
// Использование конструктора класса Array для типа String // 1. Сформировать массив пустых строк типа String val Days = Array<String>(7) { "" } // 2. Записать значение в массив Days[0] = "Sunday" Days[1] = "Monday" Days[2] = "Tuesday" Days[3] = "Wednesday" Days[4] = "Thirsday" Days[5] = "Friday" Days[6] = "Saturday" // 3. Вывести массив строк for (day in Days) print(day + " ")
⇑
2.2.3. Сформировать массив логических значений типа Boolean
// Использование конструктора класса Array для типа String // 1. Сформировать массив логических значений типа Boolean. // В массиве выходные дни имеют значение true var DayOff = Array<Boolean>(7) { false } // 2. Установить выходные дни DayOff[5] = true DayOff[6] = true // 3. Вывести массив for (d in DayOff) print(d.toString() + " ")
⇑
2.2.4. Сформировать массив символов типа Char
При формировании массива символов типа Char используется лямбда-выражение.
// Создать массив символов, содержащий прописные буквы латинского алфавита var AC = Array<Char>(26) { c -> ('A' + c).toChar() } // Вывести массив for (i in AC) print(i + " ")
⇑
2.3. Использование метода arrayOfNulls()
Метод arrayOfNulls() позволяет создать массив значений заданного типа и заданного размера, который может содержать значение null. Общая форма объявления массива с использованием метода arrayOfNulls() следующая
var arrayName : Array<T> = arrayOfNulls(size)
здесь
- arrayName – имя создаваемого массива;
- T – тип элементов массива;
- size – размер массива, который резервируется (выделяется).
После объявления массива его элементы имеют значение null. Объявление предполагает, что нулевые значения элементов массива будут в дальнейшем изменены.
⇑
2.3.1. Создание массива чисел типа Short
Создается массив чисел типа Short. Каждое число определяет количество дней в соответствующем месяце года номер которого является индексом массива плюс 1.
// Метод arrayOfNulls() - создание массива, содержащего null-значение. // Формируется перечень дней в каждом месяце. // 1. Создать массив из 12 элементов типа Short val DayInMonths : Array<Short?> = arrayOfNulls(12) // 2. Записать в массив данные месяцев, в которых 31 день, // использовать оператор when for (i in IntRange(0, DayInMonths.size-1)) DayInMonths[i] = when (i+1) { 2 -> 28 4, 6, 9, 11 -> 30 else -> 31 } // 3. Вывести массив DayInMonths for (d in DayInMonths) print(d.toString() + " ") // 31 28 31 30 31 30 31 31 30 31 30 31
⇑
2.3.2. Создание массива константных значений типа Float
// Метод arrayOfNulls() - создание массива, содержащего null-значения // 1. Создать массив значений типа Float val Squares : Array<Float?> Squares = arrayOfNulls(5) // 2. Заполнить массив значениями var i : Int = 0 while (i < Squares.size) { Squares[i] = (i*i).toFloat() i++ } // 3. Вывести массив Squares for (x in Squares) print(x.toString() + " ")
⇑
2.3.3. Создание массива строк типа String
// Метод arrayOfNulls() - создание массива, содержащего null-значение // 1. Создать массив строк var Seasons : Array<String?> = arrayOfNulls<String>(4) // 2. Заполнить массив строк значениями Seasons[0] = "Winter" Seasons[1] = "Spring" Seasons[2] = "Summer" Seasons[3] = "Autumn" // 3. Вывести массив строк for (s in Seasons) print(s + " ")
⇑
Связанные темы
⇑