HashSet添加元素时如何保证不重复

调用 add(Object 方法时,首先会调用 Object 的 hashCode 方法判 hashCode 是否已经存在 HashCode 相同的元素,如不存在则直接插入元素;如果已存在,则调用 Object 对象的 equals 方法判断是否返回true, 如果为 true 则说明元素已经存在,如为false则插入元素。

可以认为HashMap的key是不能重复的,而这里HashSet的元素是作为了map的key,所以也不能重复。

image-20210718104050829
image-20210914180921174