Collection常见的方法:

set都可以使用.
Set是一个interface:
Set<String> s = new HashSet<>();
add的返回值:表示原有集合中是否有某个元素.
Set的几个子类的toString方法是重写了的,可以直接打印



tip:为什么是&
? 因为这样可以使得index肯定小于数组长度-1.源码就是这么写的 事实上,这是一种非常常见的方式。我们阅读下面可以发现,数组长度-1的二进制数一定都是11111…从而,达到了对哈希值取模的作用。 为什么不直接取模?因为直接用%的话,编译器并不知道数组长度-1这个值的特性,因此无法优化成位运算。hashCode():Object中的方法,返回一个整数,表示对象的哈希值

重写的时候,一般来说,需要让属性值相同的不同对象Hash值一样.可以右键帮我们重写:


重写之后这两者hash值就是一样的.有没有哈希碰撞的例子?有:

这两者就是一样的.