成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

List有序,Set無序,真的是這樣嘛?

開發 前端
今天說一說集合,在面試的時候出現的頻率非常高,開發中使用的頻率也非常高。經常聽到有人說List是有序,Set是無序,那么這個有序和無序指的究竟是什么呢?

 [[283143]]

今天說一說集合,在面試的時候出現的頻率非常高,開發中使用的頻率也非常高。經常聽到有人說List是有序,Set是無序,那么這個有序和無序指的究竟是什么呢?

 

List有序,Set無序,真的是這樣嘛?

 

這里有兩個概念,一個是存取元素的順序,比如我存的時候是3 4 5 1 2 ,那么取出來也應該是3 4 5 1 2 或者 2 1 5 4 3 。另一個是元素在容器中大小順序,更準確說是排序。如果說區分了這兩個概念,就好說了,看上面的體系圖,List家族有兩名大將,分別是ArrayList和LinkedList。而Set家族里主要有HashSet和TreeSet兩名大將。

如果要按照存和取的順序來講,ArrayList和LinkedList就屬于有序集合,因為ArrayList底層是動態數組實現的,而數組是一塊連續的空間,每次存的時候都是找到索引,一個接著一個的存儲,取的時候也要按照索引遍歷出來。

 

List有序,Set無序,真的是這樣嘛?

 

鏈表也是一樣,不是存到鏈表頭就是存到鏈表尾。因為存和取的順序有序,模擬棧(先進后出)和隊列(先進先出)這兩種數據結構也很容易。但這兩種結構它們本身并不能對元素進行排序,這也決定了我不能輕易的找到數組或鏈表中的最大值和最小值,或者說元素和元素之間存儲的并沒有什么規律。

 

List有序,Set無序,真的是這樣嘛?

 

同樣,按照存儲順序來講,HashSet依賴哈希存儲,計算哈希值之后,會分散到不同的存儲位置上,這也就代表存儲的時候,元素不是一個挨著一個存儲的,而是根據每個元素的hash值,散列到了不同的位置。存取的順序也是不能保證的,元素的排序順序也是不能保證的,但好處就是存取效率高。

 

List有序,Set無序,真的是這樣嘛?

 

而TreeSet依賴的是樹存儲,在樹這種結構中,無論是二分查找樹,還是紅黑樹,在存儲元素的時候都會對元素本身進行比較,按照大小放到合適的位置,這也就說明,元素會按照樹的性質去存儲,那么也就無法保證存和取元素的順序。但是元素可以在存儲的時候根據自身的大小排好序,從而可以很輕易的找到最大值,最小值,以及給定一個元素,找到比他大和比他小元素等操作。

 

List有序,Set無序,真的是這樣嘛?

 

總結:按元素存取順序來說,List是有序的,Set是無序的。按照元素和元素之間的關系來說,List是無序的,TreeSet是有序的。而HashSet怎么說都是無序的。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2016-03-15 09:53:43

5GHz5G

2015-08-27 09:21:20

程序員青春飯

2024-01-31 16:46:24

SQL數據庫

2024-04-19 13:02:27

容器C++

2024-11-08 17:15:49

2020-02-20 10:45:57

代碼JS開發

2020-04-16 11:17:28

MacOSWindows安全

2020-12-24 06:00:27

Python編程語言開發

2021-01-29 10:23:45

無序數組元素

2022-04-29 14:08:50

技術人工智能

2016-09-23 18:40:42

微軟開源代碼開源社區

2024-07-26 15:58:55

2015-05-20 14:01:27

程序程序會做飯

2018-09-29 15:34:34

JavaList接口

2022-05-13 09:05:37

JSObject無序

2019-11-11 14:55:25

Redis數據類型命令

2022-05-09 08:37:43

IO模型Java

2018-08-22 13:11:35

中數經緯輿情監測中央廚房

2020-04-03 21:36:54

數據科技

2010-03-30 14:06:35

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区高清 | 免费观看毛片 | 国产精品久久久久久影视 | 人人玩人人添人人澡欧美 | 久久成人综合 | 日本理论片好看理论片 | 日韩综合网 | 欧美成人免费在线视频 | 国产精品一区久久久 | 久久国产亚洲 | 99久久婷婷| 日韩精品免费一区二区在线观看 | 国产精品a久久久久 | 午夜看电影在线观看 | 丝袜美腿一区二区三区 | 一级毛片视频在线 | 久久伊人一区 | 精品久草| 黄色在线免费看 | 玖玖国产 | 天天拍天天插 | 中文字幕在线精品 | 日韩欧美在线一区 | 97人澡人人添人人爽欧美 | 99精品久久 | 精品福利一区二区三区 | 亚洲一区 | 国产精品乱码一二三区的特点 | 欧美一区日韩一区 | 日韩欧美在线免费观看视频 | 欧美aⅴ片 | 国产精品久久亚洲 | 亚洲深夜福利 | 天堂va在线 | 成年人视频免费在线观看 | 欧美在线一区二区三区 | 涩涩视频在线观看 | 男女下面一进一出网站 | 日韩视频精品在线 | 日本午夜精品 | av第一页|