黑马程序员技术交流社区
标题:
两个小疑问?????
[打印本页]
作者:
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