黑马程序员技术交流社区

标题: 两个小疑问????? [打印本页]

作者: HM汪磊    时间: 2013-3-16 23:41
标题: 两个小疑问?????
本帖最后由 HM汪磊 于 2013-3-17 13:10 编辑

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

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

作者: 张善颖    时间: 2013-3-16 23:58
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),可以随意的访问外部类的成员,这可让我们更好地组织管理我们的代码,增强代码的可读性。
作者: HM张超    时间: 2013-3-17 09:58
equals比较是两个对象元素是否相等
作者: 陈丽莉    时间: 2013-3-17 12:58
若还有问题,欢迎继续追问;没有的话,请将帖子分类改成【已解决】~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2