问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

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好像没啥意义
hashset是无序的,list是有序的,请问这句话是什么意思,怎么理解

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

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

hashset无序,所以各种可能的输出都有可能,比如4,2,3,1 而list有序,肯定会输出1,2,3,4

java中set和list的区别

一: Set 不允许重复,List允许重复 二: Set 无序,List有序 .这里的无序和有序, 是说的添加顺序和元素顺序的一致性.比如添加时是obj1,obj2,obj3 ,那么list存储他们的顺序就是obj1,obj2,obj3 而set集合的存储顺序就不一定了,可能是obj2,obj1,obj3 Set和List的参考代码 import java.util.Arr...

java set 顺序

linkedhashset是有序的,hashset是无序的。linkedhashset是以链表形式存放数据的,hashset是用hash散列存放数据的。list也分好几种,主要有arraylist和linkedlist,都是有序的,其中arraylist类比数组,linkedlist类比链表。arraylist是线程不同步的,也就是说多个线程同时操作一个list那么List中存放数据的一致性...

List、Set、Map三种集合的区别

Set接口是Collection接口的一个子接口,是无序的,set中不包含重复的元素,也就是说set中不存在两个相同的元素,在添加数据时会根据当前这个元素的hash值去比较集合中已有的元素,如果已存在相同的集合,添加方法会返回一个false,表示添加失败。主要使用它的俩个实现类 HashSet:可以存放任意类型和任意个数...

java中list存储有顺序吗

list是有顺序的,hashset是无序的,treeset是有序的

list、set和map之间的主要区别是什么?

1. List:有序集合,允许重复元素,通过索引访问,插入顺序与迭代顺序一致,实现类有ArrayList、LinkedList等。2. Set:不允许重复元素的集合,元素无序,不能通过索引访问,实现类有HashSet、LinkedHashSet、TreeSet等。3. Map:键值对集合,每个键对应一个值,不允许键重复但允许值重复,实现类有Hash...

java中 List 与Set 的区别

由Collection接口派生的两个接口是List和Set。List接口 List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。和下面要提到的Set不同,List允许有相同的元素。 除了具有Collection接口必备的iterator()方法外,...

java有哪些有序集合

1、List:有序的collection(也称为序列)。此接口可以对列表中每个元素的插入位置进行精确地控制。可以根据元素的在列表中的位置访问元素,并搜索列表中的元素。列表允许重复的元素。ArrayList:特点:有序的、线性的、无固定大小的、有下标的、先进先出。2.Set:是简单的集合,它的对象不按特定方式排序,...

java中set和list的区别

set和list都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 List的功能方法 实际上有两种List: 一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的LinkedList,它并不是为快速随机访问设计的,而是具有一套更通用的方法...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
steam上买的正版gta5,笔记本一进游戏就花屏,根本玩不起来,配置i7-6700... 描写山歌的优美句子精选110句 ...机反应速度非常慢,总出现卡机现象,是什么原因? 混合洗是怎么洗衣的呢? 2022新学期开学寄语,新一年精美祝福语集锦 祝福短语:2022新学期开学祝福寄语 新学期开学祝福语短信2022 小学生开学祝福语2022 纳兰君墓志铭纳兰性德部分评议 教你在家做葡萄酒好喝不上头[如何自酿葡萄酒教程] 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版本微信怎么看到隐藏的 微信怎么设置隐藏,不让好友看到? 怎么查看被隐秘的
  • 焦点

最新推荐

猜你喜欢

热门推荐