iT邦幫忙

2021 iThome 鐵人賽

DAY 30
0
自我挑戰組

菜雞的JAVA日記系列 第 30

DAY30-JAVA的Set、List、Map介面

Set介面

在Set中的元素不能重複出現,由於JAVA中的Set是一個介面,它是Collection的子介面,因此繼承所有Collection介面的函數。必須利用java.util.*將java.util載入,才能順利編譯與執行。

HashSet類別
在儲存資料時,最常見的方式就是一筆一筆依序將資料存入陣列。HashSet類別實作Set介面,它利用雜湊表(Hash Table)演算法來改進執行的效率。HashSet物件裡的元素都是唯一,因為HashSet具有不可重複性,此外,HashSet裡的元素並不能保證排列的順序和原先加入時的順序相同,這是因為HashSet不具有次序性。

TreeSet類別
存放在HashSet的元素是沒有順序的,如果希望加入元素時,這些元素可以自動排序,此時利用TreeSet來完成。TreeSet實作SortedSet介面,因此承襲SortedSet介面中,自然排序的特性,也就是會自動將元素由小到大排序。

List介面

List是串列的意思,在JAVA裡,List也是集合的一種。List中的元素會一個接一個串接在一起,因此是有前後次序的。和Set不同的是,它是屬於有序集合物件(ordered collection),也就是會依照特定順序排序。儲存在List中的元素可以重複,且元素具有索引值(index),因此我們可以利用這個索引值進行類似陣列存取元素的動作。
SortedSet是自動排序的集合物件(Sorted Collection),它會根據元素本身的大小來排列;而List是屬於有序的集合物件(ordered collection),它會依照索引值來排列元素的位置。

LinkedList類別
當我們在List中增加或刪除元素時,索引值會自動重新排序。LinkedList類別是實作List介面的類別,List介面又繼承Collection介面,因此LinkedList類別的函數與List介面的函數相同。

ArrayList類別
ArrayList類別也是實作List介面,與LinkedList不同的是,LinkedList在加入或刪除元素時都是從物件的起始或結尾處,而ArrayList利用索引值(index)在指定的位置進行這些動作。ArrayList物件也可以看成是一個動態的陣列,可以自行調整陣列的大小。

Map介面

Map要以關鍵值(key)儲存,這個關鍵值會對應到指定的資料,即對應值(value)。Map介面是以Map<K,V>表示,其中K是關鍵值Key,V是對應值Value。

HashMap類別
HashMap是實作Map介面的類別,其儲存的元素分為關鍵值Key與對應值Value。

HashMap<Integer,String> hmap = new HashMap<Integer,String>();

TreeMap類別
SortedMap是Map的子介面,TreeMap類別是實作SortedMap介面的類別,其儲存的元素為關鍵值Key與對應值Value,元素會依關鍵值由小到大排序。TreeMap的關鍵值必須是唯一存在,而且不能為null,但對應值則可以重複。

Oh My God!!!!!!
完成30天挑戰啦啦啦啦啦啦啦啦!!!!
真的太替自己感到驕傲了~~~
謝謝大家看到這(鞠躬
也辛苦自己了(捶肩膀
後~會~有~期~

菜鳥工程師的體脂肪

菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link


上一篇
DAY29-JAVA的for-each、Iterator和ListIterator
系列文
菜雞的JAVA日記30

尚未有邦友留言

立即登入留言