Этот ответ основан на вашем ответе на комментарий (и), спрашивающий: «Ваш класс DriverMain
переопределяет метод equals
?» ...
Для того, чтобы использовать (Array) List, HashTable, HashSet или HashMap и т. Д., Вам необходимо переопределить «пару» методов в вашем классе DriverMain
. Чтобы List, Set и т. Д. И некоторые другие типы коллекций или Map / HashTable могли оценить, является ли ваш объект членом его содержимого, вам необходимо предоставить ему способ сравнения объекта, который вы ему передаете, и объектов. в настоящий момент он содержит.
Список
В методе contains(Object o)
используется метод equals(Object o)
объекта для сравнения вашего объекта o
с любым объектом x
(членомСписок коллекции).
Для получения дополнительной информации об этом, пожалуйста, посетите следующие ссылки: https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/list.html
Set
Метод contains(Object o)
использует метод hashCode()
и equals(Object o)
Объекта для сравнения вашего Объекта o
с любым Объектом x
(членом Коллекции Наборов).
Для получения дополнительной информации посетитеследующие ссылки: https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/set.html
Карта
В методе containsKey(Object o)
для сравнения используются методы Object hashCode()
и equals(Object o)
ваш объект o
к любому объекту x
(член интерфейса карты).
Для получения дополнительной информации об этом, пожалуйста, посетите следующие ссылки: https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html
Важное примечание Есть и другие способыподходить к такой ситуации, все зависит от ее реализации. Например: TreeSet
и TreeMap
не используют метод hashCode()
.