Это потому, что вы берете ссылку на объект List
только при оценке равенства.Вам нужно было бы перебрать коллекции для проверки (при условии, что порядок важен):
E1.size() == E2.size() && IntStream.range(0, E1.size())
.allMatch(index -> E1.get(index).equals(E2.get(index)));
PS1: имена переменных пишутся строчными буквами в java.
PS2: убедитесь, что выопределяя equals
и hashCode
правильно.По умолчанию один и тот же объект не равен в разных состояниях (управляемый, отсоединенный).