Как сопоставить два списка спящих объектов равны - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть список 2 спящих объектов.Мне нужно сравнить их.Когда я использую equals(), он всегда выдает false, поскольку его ссылка отличается.

E1.equals(E2)

1 Ответ

2 голосов
/ 20 сентября 2019

Это потому, что вы берете ссылку на объект List только при оценке равенства.Вам нужно было бы перебрать коллекции для проверки (при условии, что порядок важен):

E1.size() == E2.size() && IntStream.range(0, E1.size())
    .allMatch(index -> E1.get(index).equals(E2.get(index)));

PS1: имена переменных пишутся строчными буквами в java.

PS2: убедитесь, что выопределяя equals и hashCode правильно.По умолчанию один и тот же объект не равен в разных состояниях (управляемый, отсоединенный).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...