- class Demo3{
- public static void main(String[] args){
- HashSet hs = new HashSet();
- hs.add("java01"); //add返回true
- hs.add("java01"); //add返回false
-
- hs.add(new person("zhangsan",10)); //add返回true
- hs.add(new person("zhangsan",10)); //add返回true
- }
- }
- class person{
- private String name;
- private int age;
- person(String name,int age){
- this.name=name;
- this.age =age;
- }
- }
复制代码
如上述代码,String类与自定义类的区别在于:String类中不允许重复对象的存在;而一般类允许重复对象的存在,两个相同的对象有着不同的哈希值
结论:自定义类对象存入HashSet需要重写hashcode和equals方法,String类对象存入HashSet不需要重写hashcode和equals(已经被重写过) |
|