溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ArrayList,Vector, LinkedList的特性有哪些

發布時間:2021-12-22 09:04:29 來源:億速云 閱讀:150 作者:iii 欄目:編程語言

這篇文章主要講解了“ArrayList,Vector, LinkedList的特性有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ArrayList,Vector, LinkedList的特性有哪些”吧!

ArrayList,Vector, LinkedList的特性有哪些
  首先,List 與 Set 具有相似性,它們都是單列元素的集合,所 以,它們有一個功共同的父接口,叫 Collection。Set 里面不 允許有重復的元素,所謂重復,即不能有兩個相等(注意,不 是僅僅是相同)的對象 ,即假設 Set 集合中有了一個 A 對象, 現在我要向 Set 集合再存入一個 B 對象,但 B 對象與 A 對象 equals 相等,則 B 對象存儲不進去,所以,Set 集合的 add 方 法有一個 boolean 的返回值,當集合中沒有某個元素,此時 add 方法可成功加入該元素時,則返回 true,當集合含有與某 個元素 equals 相等的元素時,此時 add 方法無法加入該元素, 返回結果為 false。Set 取元素時,沒法說取第幾個,只能以 Iterator 接口取得所有的元素,再逐一遍歷各個元素。


  List 表示有先后順序的集合, 注意,不是那種按年齡、按大小、按價格之類的排序。當我們多次調用 add(Obj e)方法時, 每次加入的對象就像火車站買票有排隊順序一樣,按先來后到 的順序排序。有時候,也可以插隊,即調用add(intindex,Obj e)方法,就可以指定當前對象在集合中的存放位置。一個對象可以被反復存儲進 List 中,每調用一次 add 方 法,這個對象就被插入進集合中一次,其實,并不是把這個對 象本身存儲進了集合中,而是在集合中用一個索引變量指向這個對象,當這個對象被 add 多次時,即相當于集合中有多個索引指向了這個對象,如圖 x 所示。List 除了可以以 Iterator接口取得所有的元素,再逐一遍歷各個元素之外,還可以調用get(index i)來明確說明取第幾個。


  Map與 List 和 Set 不同,它是雙列的集合,其中有 put 方法,定義如下:put(obj key,obj value),每次存儲時,要存儲一對 key/value,不能存儲重復的 key,這個重復的規則也是按equals 比較相等。取則可以根據 key 獲得相應的 value,即get(Object key)返回值為 key 所對應的 value。另外,也可以 獲得所有的 key 的結合,還可以獲得所有的 value 的結合,還 可以獲得 key 和 value 組合成的 Map.Entry 對象的集合。


  List 以特定次序來持有元素,可有重復元素。Set 無法擁有重復元素,內部排序。Map 保存 key-value 值,value 可多值。


  HashSet 按照 hashcode 值的某種運算方式進行存儲,而不是直接按 hashCode 值的大小進行存儲。例如,"abc" ---> 78,


  "def" ---> 62,"xyz" ---> 65 在 hashSet 中的存儲順序不是62,65,78,這些問題感謝以前一個叫崔健的學員提出,最后通過查看源代碼給他解釋清楚,看本次培訓學員當中有多少能看懂源碼。LinkedHashSet 按插入的順序存儲,那被存儲對象的hashcode 方法還有什么作用呢?學員想!hashset 集合比較兩個對象是否相等,首先看 hashcode 方法是否相等,然后看 equals 方法是否相等。new 兩個 Student 插入到 HashSet 中,看 HashSet 的 size,實現 hashcode 和 equals 方法后再看 size。


  同一個對象可以在 Vector 中加入多次。往集合里面加元素,相當于集合里用一根繩子連接到了目標對象。往 HashSet 中卻加不了多次的。

感謝各位的閱讀,以上就是“ArrayList,Vector, LinkedList的特性有哪些”的內容了,經過本文的學習后,相信大家對ArrayList,Vector, LinkedList的特性有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女