Ответ
Для сравнения объектов без учета порядка ключей можно:
- Преобразовать объекты в строки JSON и сравнить
- Использовать глубокое сравнение
Пример с JSON:
fun areObjectsEqual(obj1: Any, obj2: Any): Boolean {
val gson = Gson()
return gson.toJson(obj1) == gson.toJson(obj2)
}
Для более надежного сравнения лучше использовать глубокое сравнение:
fun deepEquals(a: Any?, b: Any?): Boolean {
if (a === b) return true
if (a == null || b == null) return false
if (a.javaClass != b.javaClass) return false
// Далее рекурсивное сравнение полей/элементов
// ... реализация зависит от структуры объектов
}
Важно: JSON-подход не учитывает некоторые типы данных (например, даты), а глубокое сравнение требует больше ресурсов.