Может ли измениться List, сохранённый в val?Да: другой владелец изменяемого списка может менять его содержимое. val фиксирует ссылку, интерфейс List ограничивает доступ через эту ссылку. Kotlin: коллекции.
Копирует ли data class вложенный MutableList?data class Cart(val items: MutableList<String>) val first = Cart(mutableListOf("book")) val second = first.copy() second.items += "pen" Нет. copy() создаёт новый внешний объект с прежней ссылкой на список. Для независимого редактирования нужны отдельные коллекции и политика копирования вложенных объектов. Kotlin: data classes.
Почему две модели с разным полем в теле класса равны?Сгенерированный equals использует свойства первичного конструктора. Это опасно, если поле влияет на отображение, а обновления фильтруются по равенству. Kotlin: data classes.
Когда Sequence помогает на цепочке filter/map/take?Когда ранняя остановка позволяет не обрабатывать остальную последовательность. Для полного обхода небольшой коллекции выигрыш не гарантирован: измеряйте конкретную цепочку. Kotlin: Sequence.
Равны ли Photo(byteArrayOf(1)) и ещё одна такая Photo?Для data class Photo(val bytes: ByteArray) — нет: разные массивы не получают поэлементное равенство автоматически. Нужны согласованные contentEquals и contentHashCode либо другая модель. Kotlin: equality.
Сколько раз сработает map при двух toList одной обычной Sequence?Преобразование выполнится при каждом обходе: Sequence сама по себе не кэширует результат. Это не относится к специально одноразовым последовательностям: повторный обход у них может завершиться ошибкой. Kotlin: Sequence.