← Назад к вопросам

Что такое List?

1.2 Junior🔥 191 комментариев
#Коллекции и структуры данных

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое List?

List — это интерфейс коллекции в Java/Kotlin, представляющий упорядоченный набор элементов (последовательность). Это одна из основных абстракций в Collections Framework.

Ключевые характеристики

Свойства List:

  • Упорядоченность — элементы расположены в определённом порядке с индексами (0, 1, 2...)
  • Дублирование — допускает одинаковые элементы
  • Null-значения — может содержать null (зависит от реализации)
  • Изменяемость — может быть mutable (ArrayList) или immutable (listOf())

Основные реализации в Kotlin

// Неизменяемый список (read-only)
val immutableList: List<String> = listOf("A", "B", "C")

// Изменяемый список
val mutableList: MutableList<String> = mutableListOf("A", "B", "C")
mutableList.add("D")
mutableList.remove("A")

// ArrayList — реализация с динамическим массивом
val arrayList: ArrayList<String> = arrayListOf("X", "Y")

// LinkedList — реализация со связным списком
val linkedList: LinkedList<String> = linkedListOf("P", "Q")

Основные операции

  • add(element) — добавить элемент в конец
  • add(index, element) — вставить по индексу
  • remove(element) — удалить элемент
  • removeAt(index) — удалить по индексу
  • get(index) или list[index] — получить элемент
  • indexOf(element) — найти индекс
  • size — количество элементов
  • isEmpty(), isNotEmpty() — проверка
  • forEach { } — итерация

Важные различия ArrayList vs LinkedList

ОперацияArrayListLinkedList
Доступ по индексуO(1)O(n)
Добавление в конецO(1) амортизированноO(1)
Добавление в началоO(n)O(1)
УдалениеO(n)O(n) в худшем
ПамятьКомпактнееБольше (указатели)

ArrayList используется чаще — оптимален для случайного доступа и обычных операций в Android.

Практический пример в Android

class UserAdapter(val users: List<User>) : RecyclerView.Adapter<UserAdapter.ViewHolder>() {
    override fun getItemCount(): Int = users.size
    
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val user = users[position]
        holder.bind(user)
    }
    
    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        fun bind(user: User) {
            // ...
        }
    }
}

List — фундаментальная концепция для работы с коллекциями данных в Android-разработке, особенно при работе с адаптерами и RecyclerView.