Junior — Middle
86
Екі объектінің қасиеттері әртүрлі тәртіпте орналасқан болса да, олардың тең екенін қалай тексеруге болады?
Сұралған компаниялар
ПСБ
AI-дан жауап
sobes.tech AI
Чтобы проверить равенство двух объектов, у которых свойства могут располагаться в разном порядке (например, два JSON-объекта или Map), нужно сравнивать их содержимое, а не порядок элементов.
Подходы:
- Если это коллекции типа
MapилиSet, используйте методыequals(), которые не зависят от порядка. - Для JSON-объектов можно распарсить их в структуры данных (например,
JSONObjectилиMap) и сравнить.
Пример на Kotlin для сравнения двух JSON-строк без учета порядка свойств:
import org.json.JSONObject
fun jsonEquals(json1: String, json2: String): Boolean {
val obj1 = JSONObject(json1)
val obj2 = JSONObject(json2)
return obj1.similar(obj2) // сравнивает содержимое без учета порядка
}
Если объекты — собственные классы, можно переопределить equals() так, чтобы сравнивать поля по значению, игнорируя порядок, если это коллекции.
Таким образом, ключ — сравнивать содержимое, а не порядок расположения свойств.