首页

文章

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

发布网友 发布时间:2022-03-26 07:55

我来回答

5个回答

热心网友 时间:2022-03-26 09:25

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

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

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

扩展资料:

HashSet输入顺序:

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

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




热心网友 时间:2022-03-26 10:43

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

热心网友 时间:2022-03-26 12:17

举个简单的例子吧,比如有元素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-03-26 14:09

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

热心网友 时间:2022-03-26 16:17

0就是指定HashSet的初始容量为0的意思 不过你构造初始容量为0好像没啥意义
贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 库存过期香精 hashmap如何排序 Java中的HashMap加入元素时,是否可以根据自己定义的顺序加入元素得到自己期望的顺序? HashMap和LinkedHashMapTreeMap的区别 java map元素是否有顺序 LinkedHashMap到底是有序还是无序 HashMap 是无序的 为什么用Iterator 迭代出来时每次的顺序都一样 c++中map是有序的吗 java map 先后顺序 HashMap输出顺序的问题 hashMap,Arraylist和set的区别 arraylist和hashmap的区别 如何对HashMap中的元素进行排序 java linkedhashmap有序吗 Hashmap在输出时怎么排序 hashset hashmap是有序的吗? Java中的HashMap,为什么输出竟然是有序的 华为手机可以安装两个微信吗? 华为荣耀30如何一个手机登陆两个微信 是华为的手机都可以同时登录两个微信吗? 如何打开华为荣耀手机的第二个微信 JAVA:hashmap根据自定义类型的属性排序 java中hashmap和hashtable的区别 苹果手机屏幕横竖怎么设置 iphone桌面怎么横屏 ios15.2桌面怎么开横屏? 苹果ios8怎么设置横屏竖屏 怎么能找到微信好友隐藏的码和手机号码? 怎样查看微信好友隐藏的 怎么查看隐藏的 怎么查看隐藏的 微信中怎么查看被隐藏的 怎样查微信里被隐藏的朋友? 怎么才能看到微信好友隐藏起来的 怎么才能看到微信好友隐藏起来的? 微信里为什么看不到对方的? 微信里为什么看不到对方的? 怎么样才能看到微信好友隐藏的, oppo手机6.1版本微信怎么看到隐藏的 微信怎么设置隐藏,不让好友看到? 怎么查看被隐秘的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com