问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-05-03 10:30

我来回答

5个回答

热心网友 时间:2022-06-19 01:20

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

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

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

扩展资料:

HashSet输入顺序:

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

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




热心网友 时间:2022-06-19 01:20

有序指的是存储顺序和添加顺序是相同的,并且可通过它的下标进行访问。而无序则刚好相反,它存储顺序和添加顺序无关,它是没有下标的,当然也就不能通过下标访问喽

热心网友 时间:2022-06-19 01:21

举个简单的例子吧,比如有元素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这类的特殊类型,你会发现,用三个数据来测试就会发现是无序的。

热心网友 时间:2022-06-19 01:21

首先说明一下:HashSet和List集合底层都是数组,这个是前提
1.List集合是有序的,是指集合元素的添加顺序和底层数组的索引的顺序是一致的,比如插入第一个元素,索引就是0,插入第二元素索引为1...依次类推
2.hashSet底层也是一个数组.数组本身是有索引的,数组本身肯定是有序的.但是我们这里说的无序指的是元素的插入顺序跟底层保存在数组中的索引位置没有关系,也就是插入的第一个元素其底层数组中对应的索引不一定是0.
最后说下自己关于hashSet数据结构的理解(可能不准确,接受和平批判,不接受喷子/杠精):hashSet保存元素到数组的时候是这么保存的,会根据保存元素的hashCode(),算出来一个hashCode值,然后hashCode值再经过一些算法算出来索引,然后根据这个索引保存这个元素.

热心网友 时间:2022-06-19 01:22

0就是指定HashSet的初始容量为0的意思 不过你构造初始容量为0好像没啥意义
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 乐橙监控关闭WiFi重新开启后,手机可连接。但是乐橙手机APP重新登陆确无法连接WiFi,显示离线 python set是有序的吗 Collection、list、Set之间的联系和区别是什么? redis set 是有序的吗 set为什么是无序的而list是有序? es6中set类型是有序的还是无序的 华为手机一个没有标注的手机号码能自动保存多久? 华为P8,装了腾讯手机管家,为什么*扰电话等陌生来电没有显示标记“XXX人标记为XX电话”的信息。 旧手机坏了普洱健康码为什么在新手机上登不上打卡? 烟雨江湖刀意在哪里读书 普洱健康码昨天忘打了怎么办? 为什么华为荣耀二手手机里打电话上面的标记功能没了?标记号码的功能没了 华为P8装了腾讯手机管家,为什么*扰电话等陌生来电没有显示标记“XXX人标记为XX电话”的信息? 烟雨江湖先行服有福利吗 普洱打健康码忘打一天会有什么影响? 2021烟雨江湖藏经阁怎么离开 烟雨江湖抖音下载的是什么客户端 烟雨江湖阳维脉阴维脉怎么开 小米11与小米11E有什么区别? 天然护肤品是不需要经过什么权威机构认证的吧? 店里监控大华的,更换网络运营商后,监控设置里乐橙云现示未连接要怎么弄? 怎么理解Set集合中的HashSet中的元素是无序的? Set集合为什么是有序的 举例说明java里的Set和SortedSet有何区别 便携式打包带设备 乐橙容易离线,还登不上,怎么回事? 什么牌子手提式热熔打包机最好 四件套2.2/2.4米是最大的尺寸吗 我的苹果5恢复备份后又恢复了所有设置后就没有设闹钟可是为什么每天到点还是会响? hashset的遍历真的是无序的吗 普通用最大的被套尺寸是多少 泳昌打包机,都包括了什么产品? 花开的时候美丽的颜色是啥歌? 被套规格是如何的,被套规格有哪些? 市场上最大号的被套尺寸是多少 汽车音响功放延时线如何接线 打包机有用吗?看中了一款艾瑞克打包机 皮蛋瘦肉粥如何去腥味 嗨来电唱花开的时候是谁? 喷码机在税收服务编码总选哪一项?