ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 概述 使用HashSet存储java API中提供的类型元素时,不需要重写元素的hashCode() 和equals()方法,因为这两个方法,在java API的每个类中已经重写完毕 ,如 Stringi,Integer类等. ## 实例(没有重写hashCode()和 equals()) ~~~ public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } } ~~~ ~~~ Set<Person> s = new HashSet<>(); s.add(new Person("jack", 20)); s.add(new Person("milan", 18)); s.add(new Person("milan", 18)); //添加进去了 System.out.println(s.size()); System.out.println(s); ~~~ ## 实例(重写hashCode()和 equals()) 需求认为是同一个人,如果有两个人,名字和年龄都相同,我们不想添加到集合当中去. ## 结论 如果我们自定义了类,要使用HashSet存储,如何保证元素的唯一性.以下规则对哈希表结构都适用. 1. 重写HashCode(). 2. 重写equals().