Вполне нормально переопределить метод "contains ()" - однако, как правило, он не нужен.Цель метода contains () - просто проверить, существует ли уже эквивалентный объект в коллекции.
Метод «равно» для вашей конкретной коллекции объектов будет использоваться для выяснения этого.
Однако, если вы хотите, чтобы пользовательское поведение для содержимого, которое НЕ МОЖЕТ быть встроено в объект, возможно, стоит взломать метод contains ().Я думаю, учитывая тот факт, что вы пытаетесь кэшировать java-методы, вы можете захотеть приклеить логику «содержит» в набор, содержащий эти методы .... Однако, это не совсем понятно.