В классе Solution исправить пару методов equals/hashCode в соответствии с правилами реализации этих методов(детали уточни у своего любимого поисковика).
Обе строки first и last должны принимать участие в сравнении с помощью метода equals и вычислении hashcode.
Метод main не участвует в тестировании.
Equals and HashCode
- 24
Недоступна
неловим NullPointerException. Во втором выражении проверяем на равенство по содержимому полей first если эти поля объекта неравны, возвращаем false. В третье выражение мы переходим, если this.first == null, значит проверяем Значит если this.first == null, но solution.first != null, то поля неравны и мы возвращаем false. ! При всех остальных вариантах значений полей this.first и solution.first будут равны. Второй тернарник работает аналогично, только вместо if он передаст в return значение одного из выражений - 2 или 3, в зависимости от истинности первого. Важно понимать, что если бы у объекта были еще поля и мы бы их сравнивали такой же конструкцией: то к моменту выполнения последней строки c return мы гарантированно знаем, что остальные поля у объекта равны, иначе бы был выполнен return false и метод завершился. И еще по последнему тернарнику - мы бы могли просто написать но в таком случае, если поле null, то будет ошибка, как я писал для первого тернарника. поэтому просто добавляем проверку на null, и если last == null, проверяем ссылки