哈希值和equals方法的搭配原理: 哈希值不同,元素一定不同 哈希值相同,元素不一定相同(碰撞现象),调用equals方法 equals返回true,元素相同 euqals返回false,元素不同 HashSet集合添加一个元素的过程: 相关源码分析: //创建集合对象 HashSet<String> hs = new HashSet<>(); //添加元素 hs.add("hello"); hs.add("world"); hs.add("java"); //跟进add方法,其中调用了put方法 public boolean add(E e) { return map.put(e, PRESENT)==null; } //跟进put方法,其中调用了hash方法和putVal方法 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } //跟进hash方法, 调用了hashCode方法, 返回元素的哈希值 static final int hash(Object key) { int h; return (key &#