Ответ
Метод equals сравнивает содержимое объектов, а оператор == — ссылки на объекты.
val str1 = String("Hello")
val str2 = String("Hello")
println(str1 == str2) // false (разные ссылки)
println(str1.equals(str2)) // true (одинаковое содержимое)
Для примитивов (Int, Boolean и т. д.) == и equals работают одинаково, но для объектов — только equals даст корректный результат. Переопределяя equals, можно задать свою логику сравнения.