List<Long> ids = new ArrayList<>();
Set<Long> idSet = new HashSet<>();
Long a = new Long(10000);
Long b = new Long(10000);
ids.add(a);
ids.add(b);
if(a == b){
System.out.println(true);
}
for(Long id : ids){
if(!idSet.add(id)){
System.out.println(id);
}
}
以上的代码,a和b是两个不同的对象,if判断是不相等的。
但HashSet中只放入一个对象,hashSet是依据对象的hashCode为唯一准则的。
Long型的hashCode是其数值