HashSet是Set接口的一个实现类,它存储的元素不可重复这是我们所一开始就学习到的,但是如果有一个类中含有两个或以上成员变量就无法自动去重。
代码如下:
结果如下:
可以看到输出了两个同样的Student对象,那么该如何解决这个问题呢?
我们需要重写hashCode()和equals( )方法。
代码如下:
在上图中Student重写了hashCode()和equals()方法,在HashCode()方法中返回id的哈希值。并在equals()中比较了两个对象的哈希值。在比较中发现s2和s3的id哈希值一样,并成功去除了s2和s3。
结果如下: