Выбор ответа Middle Коллекции и последовательности обновлено

Сравнение массивов через ==

Вопрос

Что выведет println(arrayOf(1, 2) == arrayOf(1, 2))?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: false. Для массивов == вызывает equals, а у массивов на JVM он не переопределён и сравнивает ссылки.

Варианты ответа

  1. true
  2. Ошибка компиляции
  3. Зависит от JVM
  4. falseправильный ответ

Разбор

Для массивов == вызывает equals, а у массивов на JVM он не переопределён и сравнивает ссылки. Это два разных объекта, поэтому false. Для сравнения содержимого есть contentEquals, для вложенных массивов contentDeepEquals. У списков == сравнивает содержимое, поэтому listOf(1, 2) == listOf(1, 2) даст true.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.