A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

  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(已经被重写过)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马