黑马程序员技术交流社区
标题:
HashSet存入字符串对象和自定义对象的区别
[打印本页]
作者:
15001162522
时间:
2015-10-4 12:22
标题:
HashSet存入字符串对象和自定义对象的区别
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(已经被重写过)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2