黑马程序员技术交流社区

标题: HashSet存入字符串对象和自定义对象的区别 [打印本页]

作者: 15001162522    时间: 2015-10-4 12:22
标题: HashSet存入字符串对象和自定义对象的区别
  1. class Demo3{
  2.         public static void main(String[] args){
  3.                 HashSet hs = new HashSet();
  4.                 hs.add("java01");  //add返回true
  5.                 hs.add("java01");  //add返回false
  6.                
  7.                 hs.add(new person("zhangsan",10)); //add返回true
  8.                 hs.add(new person("zhangsan",10)); //add返回true
  9.         }
  10. }

  11. class person{
  12.         private String name;
  13.         private int age;
  14.         person(String name,int age){
  15.                 this.name=name;
  16.                 this.age =age;
  17.         }
  18. }
复制代码

如上述代码,String类与自定义类的区别在于:String类中不允许重复对象的存在;而一般类允许重复对象的存在,两个相同的对象有着不同的哈希值
结论:自定义类对象存入HashSet需要重写hashcode和equals方法,String类对象存入HashSet不需要重写hashcode和equals(已经被重写过)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2