黑马程序员技术交流社区

标题: HashSet和ArrayList的区别 [打印本页]

作者: Asan    时间: 2013-4-21 14:16
标题: HashSet和ArrayList的区别
对于两个区别的不是很清楚,通俗的说是不是hashSet存储可以重复,ArrayList存储不可以重复?
作者: $love    时间: 2013-4-21 14:28
你好!同学,你刚好说反了!
ArrayList的底层数据结构是数组类型的是以下标标识的!
所以可以存重复的数据而不被覆盖!
hashSet的底层数据结构是哈希表类型的!
存储数据的时候会调用底层的方法判断他们的哈希值是否相同
相同的话后面存的数据就会覆盖掉前面存的数据!
也就是不能存重复的数据
作者: 晓风妮子    时间: 2013-4-21 14:30
ArrayList中的存储是可以重复的。ArrayList的底层是数组,数据的检索是通过数组的索引来完成的,所以如果你存储的是重复的元素是可以的。
而hashSet存储的元素是不可以重复的,因为hashSet的底层实现是hash表,通过计算内存地址值来判断元素是否相同。
希望对您有所帮助!
作者: 孙鑫    时间: 2013-4-21 17:59
HashSet不能重复存储equals相同的数据。HashSet的存储是无序的.
ArrayList可以存放任何对象的引用的.其是有序的可重复的.取出时时Object,需要强制转化的.
作者: 王海龙2013    时间: 2013-4-21 18:23
-set元素是无序的,不可以重复。
--HashSet:底层数据结构是哈希表
(hashCode||equals)判断元素是否存在,及删除等操作

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

如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢




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