Kotlin: Массивы данных — полное руководство

Массивы

Массивы — структуры данных, хранящие множество элементов одного типа. Kotlin предлагает несколько способов работы с массивами.

Создание массивов

Простой массив создаётся с помощью функции arrayOf():

var items: Array<Int> = arrayOf(5, 7, 12, 40, 1, 0)

Здесь создан массив целых чисел (Int). Тип можно опустить, если он определяется по значениям:

val samArray = arrayOf(1) // Тип данных будет Int

Добавление элемента другого типа приводит к типу Any:

val samArray = arrayOf(1, "string") // Тип данных будет Any

Доступ к элементам

Доступ к элементам осуществляется по индексу (начиная с 0):

println(items[0]) // Выведет 5
println(items.get(1)) // Выведет 7

Размер массива:

println(items.size) // Выведет 6

Изменение элемента:

items[0] = 45
println(items[0]) // Выведет 45

Перебор элементов

Перебор с помощью цикла for:

for (element in items) {
    println(element)
}

Более эффективный forEach:

items.forEach { element ->
    println(element)
}

Получение индекса и значения с forEachIndexed:

items.forEachIndexed { index, element ->
    println("Элемент с индексом $index: $element")
}

Списки (Lists)

Часто вместо массивов используются списки (List). Они создаются с помощью listOf():

val itemsList = listOf(5, 7, 12, 40, 1, 0)

Списки предлагают больше методов, таких как indexOf, lastIndexOf, last, plus.

Ассоциативные массивы (Maps)

Ассоциативные массивы (карты) создаются с помощью mapOf():

val user = mapOf(
    "name" to "Bob",
    "age" to 1,
    "isHisCar" to true
)

Ключи и значения могут быть разных типов. Можно использовать Any или явно указать тип, например Map<String, Any>.

Перебор элементов:

user.forEach { key, value ->
    println("$key: $value")
}

Изменяемые коллекции

Для добавления элементов после создания используется mutableListOf() для списков:

val itemsMutableList = mutableListOf(5,7,12)
itemsMutableList.add(10)

И mutableMapOf() или метод put() для карт:

val mutableUser = mutableMapOf(
    "name" to "Bob",
    "age" to 1,
    "isHisCar" to true
)
mutableUser["city"] = "New York"

Передача коллекций в функции

Коллекции передаются как параметры функций:

fun printArray(items: List<Any>) {
    items.forEach { println(it) }
}

printArray(itemsList)
printArray(user) //Для работы с map необходим тип Any

В этом уроке рассмотрены способы работы с массивами и списками в Kotlin, включая создание, доступ к элементам, перебор и добавление элементов. Выбор типа данных зависит от задачи.

Что будем искать? Например,программа