package pace;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import java.util.HashSet;
import java.util.Iterator;
class testHas{
public final int count;
public testHas(int count){
this.count = count;
}
public String toString(){
return "testHas[count: " + count + "]";
}
@Override
public int hashCode(){
return this.count;
}
@Override
public boolean equals(Object obj){
if(this == obj){ // 判断是否为同一个对象,自己与自己比较
return true;
}
else if( obj != null && obj.getClass() == testHas.class){ // 判断两个对象是否出自同一个(运行时)类
testHas temp = (testHas) obj; // 强制类型转换
return this.toString() == temp.toString();
}
return false;
}
}
public class HashSetclass {
public static void main(String[] args){
HashSet set = new HashSet();
set.add(new testHas(1));
set.add(new testHas(2));
set.add(new testHas(3));
set.add(new testHas(4));
set.add(new testHas(4));
System.out.println(set); // [testHas[count: 1], testHas[count: 2], testHas[count: 3], testHas[count: 4], testHas[count: 4]
}
}
如图,我重复向Set集合里add了相同count变量的testHas对象,然后输出结果里还存在它,为什么?刚学,求解答
// 结果
[testHas[count: 1], testHas[count: 2], testHas[count: 3], testHas[count: 4], testHas[count: 4]