小白继续问JAVA考题
看程序写结果publicclassA{publicinthashCode(){return1;}publicBooleanequals(Objectb){returntr...
看程序写结果
public class A{
public int hashCode() {return 1;}
public Boolean equals(Object b){return true;}
public static void main(String args[]){Set set=new HashSet();
set.add(new A());
set.add(new A());
set.add(new A());
System.out.println(set.size());
}
}
请问答案是什么?请给出尽可能详细的解释,感激不尽
参考答案上是 4 3
让我百思不得其解。。。
楼下的回答是清一色的1
请问是答案错了么? 展开
public class A{
public int hashCode() {return 1;}
public Boolean equals(Object b){return true;}
public static void main(String args[]){Set set=new HashSet();
set.add(new A());
set.add(new A());
set.add(new A());
System.out.println(set.size());
}
}
请问答案是什么?请给出尽可能详细的解释,感激不尽
参考答案上是 4 3
让我百思不得其解。。。
楼下的回答是清一色的1
请问是答案错了么? 展开
5个回答
展开全部
Set一个不包含重复元素的容器,所以里面只有1个A对象,输出也就是1
因为你重写了hashcode的函数,所以每个该对象都会被判断成是相同的,所以最后输出是1;如果你把hashcode函数注释掉,则3个对象会被判断为不同元素,则会显示3
因为你重写了hashcode的函数,所以每个该对象都会被判断成是相同的,所以最后输出是1;如果你把hashcode函数注释掉,则3个对象会被判断为不同元素,则会显示3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,
hashset特性:HashSet中值不能重复;Hashset在判断是否存在同一个对象的时候首先会判断对象的hashcode是否相等,然后在判断对象的equals()是否相等。
答案错了
hashset特性:HashSet中值不能重复;Hashset在判断是否存在同一个对象的时候首先会判断对象的hashcode是否相等,然后在判断对象的equals()是否相等。
答案错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1
有哈希值的存在,因此不能重复。
有哈希值的存在,因此不能重复。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询