A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HM汪磊 高级黑马   /  2013-3-16 23:41  /  941 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 HM汪磊 于 2013-3-17 13:10 编辑

1,HashSet是通过元素的两个方法,hashCode和equals来保证元素的唯一性。那么这里equals比较的是什么?是具体内容吗??

2,“创建一个包含实例内部类的类”,这句话什么意思?有具体代码示例最好?

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

3 个回复

倒序浏览
1.确保元素唯一性的两个方法,hashCode()和equals()方法。当调用add()方法向集合中存入对象的时候,先比较此对象与原有对象的哈希值有没有一样的,如果都不一样就直接存入;如果有与之相同的哈希值,则要继续比较这两个对象是否为同一个对象,此时就要调用对象的equals()方法了。总之,只有HashCode的至相同时,才会调用equals()方法。equals()方法是比较的值是不是相同。就是具体内容。
2.要想使用new 生成一个内部类的实例,需要先指向一个外部类的实例,也就是先生成外部类的实例,因为内部类可以调用外部类的人员成员,当没有外部类实例的时候也就没有这些成员的内存空间,内部类在实例化的时候,调用外部类的成员就会出错,所以需要使用外部类的实例 + 点 + new 的方式实例化一个新的内部类。示例代码如下:

class TestInner{

public static void main(String [] args)

{

Outer outer = new Outer();

Outer.Inner inner = outer.new Inner();

}

}

在内部类(Inner Class),可以随意的访问外部类的成员,这可让我们更好地组织管理我们的代码,增强代码的可读性。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
equals比较是两个对象元素是否相等
回复 使用道具 举报
若还有问题,欢迎继续追问;没有的话,请将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马