hashset是无序的,list是有序的,请问这句话是什么意思,怎么理解

 我来答
博学小赵爱生活
高能答主

2020-05-08 · 专注于食品生活科技行业
博学小赵爱生活
采纳数:456 获赞数:111876

向TA提问 私信TA
展开全部

List,Set都是继承自Collection接口。List特点:元素有放入顺序,元素可重复 。Set特点:元素无放入顺序,元素不可重复。注意,元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的。

有序或无序是指是否按照其添加的顺序来存储对象。List 是按照元素的添加顺序来存储的。而 Set 的实现类都有一套自己的排序算法,每添加一个元素,都会按照其内部算法将元素添加到合适的位置,所以Set集合不能有重复的元素,也不能保证内部存储是按元素添加的顺序而存储的。

List接口有三个实现类:LinkedList,ArrayList,Vector ,Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet。

扩展资料:

HashSet输入顺序:

1、当输入的值大小和底层数组大小差不多的时候,HashSet的输入顺序是无序的,但输出是有序的,因为这些数的哈希值,在底层是顺序拍的,故输出也是有序的。

2、而当输入的值大小和底层数组相差很大时,大的数的哈希值有可能是小于比他小的数的,这时候输出的结果就是无序的。




ct57097
2011-05-13 · 超过12用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:30.1万
展开全部
有序指的是存储顺序和添加顺序是相同的,并且可通过它的下标进行访问。而无序则刚好相反,它存储顺序和添加顺序无关,它是没有下标的,当然也就不能通过下标访问喽
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b173602
推荐于2017-11-24 · TA获得超过1681个赞
知道小有建树答主
回答量:1466
采纳率:0%
帮助的人:838万
展开全部
举个简单的例子吧,比如有元素1,2,3,4
那么按顺序插入hashset与list中,但输出不同
hashset无序,所以各种可能的输出都有可能,比如4,2,3,1
而list有序,肯定会输出1,2,3,4
追问
我试过N次了,hashset跟List输出结果都是一样的。。。
追答
我需要修改一下答案,不过我可以告诉你Hashset就是无序的,但不是我之前说的都有可能,hashset不会按顺序存储你输入的数据你说你测试过n次了 我想问问你用了几个数据测试?3个还是10个,如果再用多一点数据,你会发现是无序的,之前的所谓“有序”只是偶合罢了,另外如果你使用String这类的特殊类型,你会发现,用三个数据来测试就会发现是无序的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
599284555
2019-01-15 · TA获得超过363个赞
知道小有建树答主
回答量:355
采纳率:66%
帮助的人:142万
展开全部
首先说明一下:HashSet和List集合底层都是数组,这个是前提
1.List集合是有序的,是指集合元素的添加顺序和底层数组的索引的顺序是一致的,比如插入第一个元素,索引就是0,插入第二元素索引为1...依次类推
2.hashSet底层也是一个数组.数组本身是有索引的,数组本身肯定是有序的.但是我们这里说的无序指的是元素的插入顺序跟底层保存在数组中的索引位置没有关系,也就是插入的第一个元素其底层数组中对应的索引不一定是0.
最后说下自己关于hashSet数据结构的理解(可能不准确,接受和平批判,不接受喷子/杠精):hashSet保存元素到数组的时候是这么保存的,会根据保存元素的hashCode(),算出来一个hashCode值,然后hashCode值再经过一些算法算出来索引,然后根据这个索引保存这个元素.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
za...7@21cn.com
2011-05-13 · TA获得超过1110个赞
知道小有建树答主
回答量:1106
采纳率:100%
帮助的人:461万
展开全部
0就是指定HashSet的初始容量为0的意思 不过你构造初始容量为0好像没啥意义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式