加入收藏 | 设为首页 | 会员中心 | 我要投稿 信阳站长网 (https://www.0376zz.com.cn/)- 基础存储、混合云网络、云安全、数据仓库、大数据!
当前位置: 首页 > 站长资讯 > 动态 > 正文

List有序,Set无序

发布时间:2021-03-12 12:44:44 所属栏目:动态 来源:互联网
导读:有两个概念,一个是存取元素的顺序,比如我存的时候是3 4 5 1 2 ,那么取出来也应该是3 4 5 1 2 或者 2 1 5 4 3 。另一个是元素在容器中大小顺序,更准确说是排序。如果说区分了这两个概念,就好说了,看上面的体系图,List家族有两名大将,分别是ArrayList

有两个概念,一个是存取元素的顺序,比如我存的时候是3 4 5 1 2 ,那么取出来也应该是3 4 5 1 2 或者 2 1 5 4 3 。另一个是元素在容器中大小顺序,更准确说是排序。如果说区分了这两个概念,就好说了,看上面的体系图,List家族有两名大将,分别是ArrayList和LinkedList。而Set家族里主要有HashSet和TreeSet两名大将。

如果要按照存和取的顺序来讲,ArrayList和LinkedList就属于有序集合,因为ArrayList底层是动态数组实现的,而数组是一块连续的空间,每次存的时候都是找到索引,一个接着一个的存储,取的时候也要按照索引遍历出来。

链表也是一样,不是存到链表头就是存到链表尾。因为存和取的顺序有序,模拟栈(先进后出)和队列(先进先出)这两种数据结构也很容易。但这两种结构它们本身并不能对元素进行排序,这也决定了我不能轻易的找到数组或链表中的最大值和最小值,或者说元素和元素之间存储的并没有什么规律。

样,按照存储顺序来讲,HashSet依赖哈希存储,计算哈希值之后,会分散到不同的存储位置上,这也就代表存储的时候,元素不是一个挨着一个存储的,而是根据每个元素的hash值,散列到了不同的位置。存取的顺序也是不能保证的,元素的排序顺序也是不能保证的,但好处就是存取效率高。

(编辑:信阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读