Как проверить, содержится ли функция элемента в коллекции? - PullRequest
0 голосов
/ 25 апреля 2018

Я бы хотел переопределить метод коллекции .cointains. Мне нужно, чтобы он возвращал положительный результат не только в том случае, если он находит точное совпадение, но также и в том случае, если он находит немного другой элемент, чем элементы, содержащиеся в списке. Критерии находятся внутри метода, который я могу вызвать .almostSimilTo ().

Как правильно это реализовать? Требуются ли лямбды?

Спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

В классах Java Collection contains() использует метод equals() объектов в коллекции, чтобы определить, находится ли элемент в коллекции.Переопределите метод .equals() для объектов, которые вы вставляете в свою коллекцию, и используйте метод .equals(), использующий логику в вашем методе .almostSimilarTo().

При переопределении equals(), убедитесь, что вы понимаете equals() hashCode() contract.

0 голосов
/ 25 апреля 2018

Это безумная практика переопределять методы сбора.

Попробуйте реализовать эту логику где-нибудь еще.Например, ваш класс может реализовать Comparable, или вы можете использовать Comparator, или ооочень много других опций.

...