这段java代码的执行结果是什么?以及为什么?还要告诉我hashCode有什么用

[复制链接]
查看11 | 回复4 | 2012-12-25 16:38:43 | 显示全部楼层 |阅读模式
结果为3。原因:Set每次保存的都是不重复对象,那么HashSet怎么知道它添加的对象是否已经存在呢?会调用这个对象的equals方法和hashCode方法和HashSet已经存在的对象比较,如果两者相同,证明是同一个对象,当前就会覆盖上一个对象。你上面的代码只是修改了hasCode方法,没有修改equals方法,如果修改下面,结果为1:class A {
public int hashCode() {
return 1;
}
public boolean equals(Object obj) {
return true;
}
public static ...
回复

使用道具 举报

千问 | 2012-12-25 16:38:43 | 显示全部楼层
结果是3如果你学习过java中的集合,你就知道set是集合的一种,add()是往集合中添加元素,size()是求集合元素的个数,添加了三个元素,结果自然是3这里的hashCode()只是一个重写方法,new()对象的时候被调用每次返回"1",但方法的返回值并没有被使用用,所以此处什么用也没有。...
回复

使用道具 举报

千问 | 2012-12-25 16:38:43 | 显示全部楼层
运行结果是3,因为向Set里面添加了三次,所以大小为3...
回复

使用道具 举报

千问 | 2012-12-25 16:38:43 | 显示全部楼层
1...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行