hashset判断集合中的元素是否唯一,是通过元素的两个方法,hashCode和equals方法来完成,如果元素的HashCode值相同,才会判断equals是否为true,如果元素的HashCode值不同,才会调用equals,复写这两个方法的代码解析如下:- public static int hashCode() //这是复写hashcode方法,原本是通过hash算法得出不同的hash值,现在为了保证哈希地址值一致,统一返回一个数,可以是任意的
- {
- return 60;
- }
- public boolean equals(Object obj) //这是复写equals方法,用传入person类作为参数作为一个例子
- {
- if(!(obj instanceof Person)) //先判断一下传进来的参数是否为Person类的对象,是的话才能判断
- return false;
- Person p = (Person)obj; //多态的局限性,object类里并没有person的属性,需要强转为person类型
- return this.name.equals(p.name); //比较一下字符串是否相同,并返回
- }
复制代码 |