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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

HashSet存储对象的方式是存储按照Hash地址的方式存储的,由此确定了HashSet这个集合存储的对象是不能重复的,无序的特性。
看视频里面老师讲,的往集合里存储两个一模一样的字符串,内存中应该分配了两个不同的地址值,对象应该是能存进去的,打印结果是只存了一个。
对这点有点不理解??

3 个回复

倒序浏览
字符串在堆内存中初始化只有一个,而是栈内存中有有两个对象都通过地址指向这个字符串,所以打印出来只有一个,这个视频中有讲的
回复 使用道具 举报
唯爱小七 发表于 2015-4-1 18:07
字符串在堆内存中初始化只有一个,而是栈内存中有有两个对象都通过地址指向这个字符串,所以打印出来只有一 ...

那么,是不是两个相同的字符串对象在堆内存中的地址是相同的?那么两个相同的自定义对象在堆内存中的地址值是不是也是相同的?只要是相同的对象在内存中的地址都是相同的?
回复 使用道具 举报
自己这样理解的: 一样的字符串,哈希值肯定一样  . 不知正确?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马