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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Asan 中级黑马   /  2013-4-21 14:16  /  4026 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对于两个区别的不是很清楚,通俗的说是不是hashSet存储可以重复,ArrayList存储不可以重复?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

6 个回复

倒序浏览
你好!同学,你刚好说反了!
ArrayList的底层数据结构是数组类型的是以下标标识的!
所以可以存重复的数据而不被覆盖!
hashSet的底层数据结构是哈希表类型的!
存储数据的时候会调用底层的方法判断他们的哈希值是否相同
相同的话后面存的数据就会覆盖掉前面存的数据!
也就是不能存重复的数据

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
ArrayList中的存储是可以重复的。ArrayList的底层是数组,数据的检索是通过数组的索引来完成的,所以如果你存储的是重复的元素是可以的。
而hashSet存储的元素是不可以重复的,因为hashSet的底层实现是hash表,通过计算内存地址值来判断元素是否相同。
希望对您有所帮助!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
HashSet不能重复存储equals相同的数据。HashSet的存储是无序的.
ArrayList可以存放任何对象的引用的.其是有序的可重复的.取出时时Object,需要强制转化的.

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
-set元素是无序的,不可以重复。
--HashSet:底层数据结构是哈希表
(hashCode||equals)判断元素是否存在,及删除等操作

--List:元素是有序的,元素可以重复。因为该集合体系有索引。(有序无序是对存入取出的顺序)
        --ArrayList:底层的数据结构使用的是数组结构。特点是查询修改速度快,但是增加删除慢,线程是不同步的。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报

如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马