小白继续问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
请问是答案错了么?
展开
 我来答
ffwfly2008
2009-10-21 · TA获得超过250个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:96.5万
展开全部
楼上说的都很对。
我希望楼主认真的看完set, Connection再来提问题。
这些东西是你应该理解的,
再者如果你对答案或者别人的答案有异议,你完全可以自己去调试这个程序。
你要Debug 是干嘛的,自己跟一下不就知道了。
20...5@qq.com
2009-10-21 · TA获得超过390个赞
知道答主
回答量:250
采纳率:0%
帮助的人:283万
展开全部
Set一个不包含重复元素的容器,所以里面只有1个A对象,输出也就是1
因为你重写了hashcode的函数,所以每个该对象都会被判断成是相同的,所以最后输出是1;如果你把hashcode函数注释掉,则3个对象会被判断为不同元素,则会显示3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chaofee
2009-10-21
知道答主
回答量:49
采纳率:100%
帮助的人:23.4万
展开全部
1,
hashset特性:HashSet中值不能重复;Hashset在判断是否存在同一个对象的时候首先会判断对象的hashcode是否相等,然后在判断对象的equals()是否相等。

答案错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ymyuri
2009-10-21 · 超过11用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:0
展开全部
1
有哈希值的存在,因此不能重复。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒杀用了一分钟
2009-10-21 · TA获得超过512个赞
知道小有建树答主
回答量:530
采纳率:0%
帮助的人:223万
展开全部
1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式