成人免费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怎么說都是無序的。

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

2015-08-27 09:21:20

程序員青春飯

2016-03-15 09:53:43

5GHz5G

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-12-24 06:00:27

Python編程語言開發

2020-04-16 11:17:28

MacOSWindows安全

2021-01-29 10:23:45

無序數組元素

2022-04-29 14:08:50

技術人工智能

2016-09-23 18:40:42

微軟開源代碼開源社區

2024-07-26 15:58:55

2018-09-29 15:34:34

JavaList接口

2022-05-13 09:05:37

JSObject無序

2015-05-20 14:01:27

程序程序會做飯

2019-11-11 14:55:25

Redis數據類型命令

2018-08-22 13:11:35

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

2020-04-03 21:36:54

數據科技

2013-05-08 15:41:11

2010-03-30 14:06:35

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品久久久一区二区三区 | 中文字幕第十五页 | 伦理片97| 免费久久网 | 久久com| 亚洲视频欧美视频 | 日韩欧美在线视频 | 日本精品在线播放 | 在线观看免费高清av | 亚洲精品久久久久久国产精华液 | 欧美国产视频 | 一区二区三区视频在线观看 | 不卡在线视频 | 韩日一区二区三区 | 亚洲 欧美 日韩在线 | 精品伊人 | 欧美综合久久久 | 亚洲欧美在线观看视频 | 亚洲天堂一区 | 精品一级电影 | 精品视频一区二区三区在线观看 | aaa一区| 黑人巨大精品 | 欧美久久不卡 | 国产成人精品a视频一区www | 国产一区二区三区视频 | 99这里只有精品视频 | 国产婷婷精品av在线 | 无码日韩精品一区二区免费 | 91精品在线播放 | 一区二区福利视频 | 国产h在线| 2021狠狠天天天| 99在线免费视频 | 亚洲精品电影在线观看 | 国产乱码久久久久久一区二区 | 一区二区三区高清不卡 | 亚洲欧美日韩电影 | 亚洲精品欧美一区二区三区 | 久热久热| www久久久 |