dir.by  
Поиск >>

Компьютер, программы
→
Kotlin
 Списки в Kotlin: interface List , interface MutableList , class ArrayList. Функции для создания: listOf(...), mutableListOf(...), arrayListOf(...) 
посмотрели 2042 раз
обновлено: 24 сентября 2026
  Kotlin  
interface List<E>
interface List<E> это массив (другими словами набор элементов).
Любой элемент можно получить по целочисленному индексу.
Нельзя добавлять, удалять элементы.

Описание:
  Kotlin     библитека kotlin-stdlib.jar    файл Collections.kt
interface List<E> : Collection<E> {
Смотрим функции >> ...
}

 
Для создания List<E> используется функция: listOf(...)
  Kotlin     Пример
class Car (val name:String, val price:Int)
{
}

...

// Создаем List
val allCars:List<Car> = listOf(
     Car("Audi A6", 50000),
     Car("Toyota Camry", 25000),
     Car("Honda Accord", 40000)
)

// Находим машины, цена которых > 20000
val foundItems = allCars.filter { elem ->
     elem.price>20000
}

// Проходим по всем элементам
foundItems.forEach { elem ->
     // показываем car name и car price на экране
     println("${elem.name} ${elem.price}")
}
  Kotlin  
interface MutableList<E>
interface MutableList<E> это массив (другими словами набор элементов).
Любой элемент можно получить по целочисленному индексу.
Можно добавлять, удалять элементы используя функции add, remove.

Описание:
  Kotlin     библитека kotlin-stdlib.jar    файл Collections.kt
interface MutableList<E> : List<E>, MutableCollection<E> {
Смотрим функции >> ...
}

 
Для создания MutableList<E> используется функция: mutableListOf(...)
  Kotlin     Пример
class Car (val name:String, val price:Int)
{
}

...

// Создаем MutableList
val allCars:MutableList<Car> = mutableListOf(
     Car("Audi A6", 50000),
     Car("Toyota Camry", 25000),
     Car("Honda Accord", 40000)
)

allCars.add( Car("Kia Sorento", 32000) )
allCars.add( Car("Hyundai Tucson", 34000) )

allCars.removeIf{elem ->
     elem.name=="Honda Accord"
}

// Находим машины, цена которых > 20000
val foundItems = allCars.filter { elem ->
     elem.price>20000
}

// Проходим по всем элементам
foundItems.forEach { elem ->
     // показываем car name и car price на экране
     println("${elem.name} ${elem.price}")
}
  Kotlin  
class ArrayList<E>
class ArrayList<E> это массив (другими словами набор элементов).
Любой элемент можно получить по целочисленному индексу.
Можно добавлять, удалять элементы используя функции add, remove.

На заметку!
В библиотеке Kotlin НЕТ class ArrayList<E>
Kotlin библиотека содержит только название. Это название ссылается в Java библиотеку.
  Kotlin     Файл TypeAliases.kt
typealias class ArrayList<E>               = java.util.ArrayList<E>


Описание:
  Java     библитека java.util    файл ArrayList.java
class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
{
Смотрим функции >> ...
}

 
Для создания ArrayList<E> используется функция: arrayListOf(...)
  Kotlin     Способ 1
val allCars:ArrayList<Car> = arrayListOf(
     Car("Audi A6", 50000),
     Car("Toyota Camry", 25000),
     Car("Honda Accord", 40000)
)


Другой способ создания можно использовать конструктор ArrayList:
  Kotlin     Способ 2
val allCars:ArrayList<Car> = ArrayList<Car>(
     listOf(
          Car("Audi A6", 50000),
          Car("Toyota Camry", 25000),
          Car("Honda Accord", 40000)
     )
)
Функции listOf(...), mutableListOf(...), arrayListOf(...)
Функция
return
Implementation
  Kotlin  
listOf(...)
  Kotlin  
List<T>
  Java  
java.util.ArrayList
  Kotlin  
mutableListOf(...)
  Kotlin  
MutableList<T>
  Java  
java.util.ArrayList
  Kotlin  
arrayListOf(...)
  Kotlin  
ArrayList<T>
  Java  
java.util.ArrayList
Зачем создавать ArrayList ?
Ответ: Общее правило, всегда следует отдавать предпочтение интерфейсу.
Поэтому следует использовать interface MutableList.
Примеры, все функции interface MutableList
создаем
mutableListOf(7, 35, 14)
функция создает список и внутри 3 элемента
На заметку! Любое количество элементов можно писать при создании
  Kotlin     Пример 1
val myList1:MutableList<Int> = mutableListOf(7, 35, 14)
// myList1 = 7, 35, 14


  Kotlin     Пример 2
val myList1:MutableList<Int> = mutableListOf(10, 20, 30, 40, 50, 60)
// myList1 = 10, 20, 30, 40, 50, 60
mutableListOf()
функция создает пустой список
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf()
// myList1 = 0 элементов
количество элементов
size
Поле содержит количество элементов
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14)

val n:Int = myList1.size
// n = 3
isEmpty()
Функция возвращает true если список пустой
  Kotlin     Пример 1
val myList1:MutableList<Int> = mutableListOf()

val myListEmpty:Boolean = myList1.isEmpty()
// myListEmpty = true


  Kotlin     Пример 2
val myList1:MutableList<Int> = mutableListOf(7, 35, 14)

val myListEmpty:Boolean = myList1.isEmpty()
// myListEmpty = false
Преобразование коллекции в
map{элемент -> Объект нового типа}
Преобразуем коллекцию в элементы другого типа
  Kotlin     Пример

class Car (val name:String, val price:Int)
{
}

class Book (val author:String)
{
}

...

val allCars:MutableList<Car> = mutableListOf(
     Car("Audi A6", 50000),
     Car("Toyota Camry", 25000),
     Car("Honda Accord", 40000)
)

// Преобразуем коллекцию из элементов Car в элементы Book
val convertedItems:List<Book> = allCars.map {elem -> Book(elem.name) }

Функции: toList()   toSet()   toMutableList()   toSortedSet()   toTypedArray()
посмотреть элементы, поиск элементов
get(index)
Выбираем элемент по позиции
index это позиция, начинающаяся с 0
 
 
 
 
Можно так:
[index]
  Kotlin     Пример 1
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

val element = myList1.get(2)
// element = 14


  Kotlin     Пример 2
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

val element = myList1[2]
// element = 14
find{элемент -> Условия}
Поиск одного элемента по условиям
Функция возвращает элемент
Если не найдено вернет null
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

val foundValue = myList1.find{ value -> value==14 || value==7 }
// foundValue = 7

val foundValue = myList1.find{ value -> value==97 }
// foundValue = null
filter{элемент -> Условия}
Выбираем элементы по условию.
Новый список будет создан.
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

// Выбираем элементы, где значения больше 10
val myList2 = myList1.filter { value -> value>10 }
// myList2 = 35, 14     это новый список
// myList1 = 7, 35, 14, 9     старый список не поменялся
subList(indexStart, indexEnd)
Выбираем элементы с начальной по конечную позиции.
Новый список будет создан.
На заметку! В конечной позиции не берется элемент.
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9, 82)

// Выбираем элементы, с 1 по 3 позиции
val myList2 = myList1.subList(1, 3)
// myList2 = 35, 14     это новый список
// myList1 = 7, 35, 14, 9, 82     старый список не поменялся
forEach{элемент -> действие}
Проходим по всем элементам.
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

myList1.forEach { value ->
     // выводим значение на экран
     println(value)
}
Другие функции: single()   elementAtOrElse()   elementAtOrNull()   first()   firstOrElse()   firstOrNull()   take()
заменить элемент
set(index, элемент)
заменить элемент в позиции на указанный элемент
index это позиция
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

// по позиции 2 поставим число 130
myList1.set(2, 26)
// myList1 = 7,         35,         130,               9
//         index=0     index=1   index=2     index=3
Другие функции: fill()
добавление элементов
add(элемент)
добавление одного элемента в конец
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35)

myList1.add(10)
// myList1 = 7, 35, 10
addAll(array)
добавление массива элементов в конец

addAll(collection)
добавление коллекции элементов в конец
  Kotlin     Пример 1
val myList1:MutableList<Int> = mutableListOf(7, 35)

val values:Array<Int> = arrayOf(210, 160, 14)
myList1.addAll(values)
// myList1 = 7, 35, 210, 160, 14


  Kotlin     Пример 2
val myList1:MutableList<Int> = mutableListOf(7, 35)

val myList2:Collection<Int> = listOf(400,300,200)
myList1.addAll(myList2)
// myList1 = 7, 35, 400, 300, 200

add(index, элемент)
добавление одного элемента в заданной позиции
index это позиция
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

// по позиции 2 добавляем число 26
myList1.add(2, 26)
// myList1 = 7,         35,         26,             14,            9
//          index=0    index=1   index=2     index=3    index=4
addAll(index, collection)
добавление коллекции элементов в указанной позиции
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(10, 20, 30)

val values:Collection<Int> = listOf(500,600)
myList1.addAll(1, values)
// myList1 = 10, 500, 600, 20, 30
Другие функции: addFirst()   addLast()   plus()
удаление элементов
remove(элемент)
удаление одного элемента, даже если элемент дублируется
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 7, 21)

val isDeleted = myList1.remove(7)
// isDeleted = true
//myList1 = 35, 14, 7, 21
removeAt(index)
Удаление по индексу
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

val element = myList1.removeAt(1)
// element = 35
// myList1 = 7, 14, 9
removeAll(collection)
удалять только те элементы, которые совпадают с коллекцией
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(10, 20, 30)

val values:Collection<Int> = listOf(10, 30)
myList1.removeAll(values)
// myList1 = 20
retainAll(collection)
Удалить все элементы, но сохранить только те, которые совпадают с коллекцией
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(10, 20, 30)

val values:Collection<Int> = listOf(10, 30)
myList1.retainAll(values)
// myList1 = 10, 30
clear()
Удаление всех элементов
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

val element = myList1.clear()
// myList1 = 0 элементов
Другие функции: removeFirst()   removeFirstOrNull()   removeLast()   removeLastOrNull()   removeIf()
сортировка, фильтрация(выборка элементов по условию), группировка и другие алгоритмы
sortBy{элемент -> поле для сортировки}
Сортировка всех элементов
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

// сортировка по возрастанию
myList1.sortBy { value -> value }
// myList1 = 7, 9, 14, 35

// сортировка по убыванию
myList1.sortBy { value -> -value }
// myList1 = 35, 14, 9, 7
filter{элемент -> Условия}
Выбираем элементы по условию.
Новый список будет создан.
  Kotlin     Пример
val myList1:MutableList<Int> = mutableListOf(7, 35, 14, 9)

// Выбираем элементы, где значения больше 10
val myList2 = myList1.filter { value -> value>10 }
// myList2 = 35, 14     это новый список
// myList1 = 7, 35, 14, 9     старый список не поменялся
Другие функции: binarySearch   drop   subList()   retainAll{ }   replaceAll{ }   groupBy{ }   fold()   max()   min()   intersect()   slice()   sum()   average()   zip()   sortWith()   asReversed()   reverse()   reversed()   shuffle()   associateBy{ }   associateWith{ }   average()   chunked()   distinct()   random()   partition{ }
Проверка коллекции
Функции: contains()   containsAll()   all()   any()
 
← Предыдущая тема
Коллекции в Kotlin
 
Следующая тема →
Массивы в Kotlin: class Array<T>, class IntArray, class FloatArray. Функции для создания: arrayOf(...), intArrayOf(...), floatArrayOf(...)
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

 
• Что такое Kotlin ?
• Почему самой популярной средой разработки для Kotlin является IntelliJ IDEA?
• Скачать и установить IntelliJ IDEA для изучения Kotlin
• Создание нового консольного проекта для изучения Kotlin | IntelliJ IDEA
Устанавливаем значение
• Объявлем переменную и устанавливаем значение в Kotlin | val, var, lateinit, константа: const val, глобальная переменная: companion object
null
• null значение используем символ ? и ?. и !! и ?: и !!. и ?. в Kotlin
Int, Float, Boolean, Char ...
• Целые числа в Kotlin: Byte, UByte, Short, UShort, Int, UInt, Long, ULong
• Десятичные числа в Kotlin: Float, Double
• Флаг со значениями true или false в Kotlin это: Boolean
• Символ в Kotlin это: Char
• Конвертация числа в текст на языке Kotlin | Int → String
String
• Строка, текст в Kotlin это: String
• Интерполяция строк в Kotlin. Пример: val address:String = "${street}, ${country}"
• В чем отличие String и StringBuilder ?
Enum
• Что такое перечисление (enum) в Kotlin ?
• Как найти enum по значению в Kotlin ?
Коллекции и массивы
• Коллекции в Kotlin
• Списки в Kotlin: interface List , interface MutableList , class ArrayList. Функции для создания: listOf(...), mutableListOf(...), arrayListOf(...)
• Массивы в Kotlin: class Array<T>, class IntArray, class FloatArray. Функции для создания: arrayOf(...), intArrayOf(...), floatArrayOf(...)
Функция
• fun() { ... } - это функция в Kotlin. Функция нужна чтобы выполнить действие.
Функция расширения
• Функция расширения в Kotlin. Позволяет добавить новую функцию в класс системный (List, ..) или мой (Book, ...)
Лямбда функция
• Лямбда функция в Kotlin. Пример1: var myFunc1 : (a:Int, b:Int) -> Int = { p1, p2 -> p1 + p2 };
Class
• Что такое class в Kotlin? Пример: class MyBook { ... } | первичный и вторичный конструктор | блок init
• Модификаторы доступа (private, protected, public) для класса и для методов, полей. | Kotlin
• lateinit это поздняя инициализация для поля class | Kotlin
• class, который наследует от интерфейса в Kotlin | Пример: class MyBook : IBook { ...}
• Безымянный class, который наследует от интерфейса в Kotlin | Пример: val book1 = object : IBook { ...}
• Общий, template class в Kotlin | Пример: class MyBook<T> { ... }
Flow
• flow - это поток данных в Kotlin. Это замена LiveData в Android Kotlin и замена Observable в RxJava
Пишем программу
• Консольное Kotlin приложение работает как Android Jetpack Compose

  Ваши вопросы присылайте по почте: info@dir.by