1.集合深入

java入门了解08

 

java入门了解08

 

 

 

       (一)hashSet实现原理:

               当我们添加一个元素,HashSet会计算出其Hash值,再根据hash值在哈希表中找出存储他的位置

               有两种情况:a.如果算出的hash值在哈希表中位置没有存值,就将其直接存在上面

                                b.如果算出的额hash值在哈希表中已有存值,会调用该元素的equals方法与该位置的元素再比较一次,返回true,一样不添加,false,添加

               例子:测试hashSet添加元素的原理,重写了其equals,hashCode

class Person{
    
    int id;
    
    String name;

    public Person(int id, String name) {
        super();
        this.id = id;
        this.name = name;
    }
    
    @Override
    public String toString() {
        return "{ 编号:"+ this.id+" 姓名:"+ this.name+"}";
    }
    
    @Override
    public int hashCode() {
        System.out.println("=======hashCode=====");
        return this.id;
    }
    
    
    @Override
    public boolean equals(Object obj) {
        System.out.println("======equals======");
        Person p = (Person)obj;
        return this.id==p.id;
    }
    
}



public class Demo2 {
    
    public static void main(String[] args) {
    /*
        HashSet set = new HashSet();
        set.add("狗娃");
        set.add("狗剩");
        set.add("铁蛋");
        System.out.println("集合的元素:"+ set);
    */    
        
        HashSet set = new HashSet();
        set.add(new Person(110,"狗娃"));
        set.add(new Person(220,"狗剩"));
        set.add(new Person(330,"铁蛋"));
        //在现实生活中只要编号一致就为同一个人.
        System.out.println("添加成功吗?"+set.add(new Person(110,"狗娃")));
        System.out.println("集合的元素:"+set);
        
    }
    
}
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案