Прежде всего не все коллекции проверяют, существует ли добавляемый вами элемент в коллекции. Например, ArrayList просто добавляет элемент в конец списка, не проверяя, находится ли он уже в списке. Другие классы используют equals, если в коллекции гарантированно есть только одна копия объекта, или CompareTo, если элементы должны быть Comparable и коллекция отсортирована (чтобы найти подходящее место для ее вставки). Карты также будут использовать equals для проверки ключа, но некоторые, такие как HashMap, также будут использовать hashCode () для ускорения процесса поиска (сначала они получают все ключи с одинаковым хеш-кодом, а затем используют equals для каждого из них, чтобы найти ключ уже существует и ему присвоено значение, которое затем будет заменено).
Но если вы хотите посмотреть, как они работают, вы можете проверить источники, которые включены в JDK.
В Eclipse у меня есть JRE для папки, в которой установлен jdk, и я могу использовать CTRL + SHIFT + T, чтобы открыть любой класс (тип) в jdk, CTRL + щелкнуть имя класса, или для методов, даже CTRL + щелчок -> открыть реализацию, которая открывает всплывающее окно с классами, реализующими этот метод (если он из интерфейса или метод непосредственно в классе, если это не так)