今天繼續Collection的部分。
讓我們來看看一樣是Collection家族的Set。
與其他Collection中的成員一樣,Set一樣可用於收集物件,但若在收集物件的過程中若有相同物件,則不再重複收集。如果你有這類需求,則可以使用Set介面實作。
HashSet
HashSet實作Set介面,Set介面繼承Collection介面,而HashSet利用Hash Table實作。
public static void main(String[] args) {
Set<Integer> set = new HashSet<Integer>();
set.add(1);
set.add(2);
set.add(3);
set.add(1);
for(Integer i: set) {
System.out.print(i + " ");
}
}
讓我們來看一下Set的效果,終端機只印出了1,2,3這三個數字,儘管我們輸入了兩次1,Set卻幫我們過濾掉了重複的數字。
接下來,讓我們看一下Map
Map 跟List和 Set不同,不屬於Collection下的子介面
Map有Key跟Value組成一對。
而Key有唯一性,若新增同一個key有不同的value,會把原先key值的資料蓋過去。
Hashmap
HashMap實作Map介面,內部實作使用Hash Table。
所謂的key/value對,簡單的說,您將Map容器物件當作一個有很多間房間的房子,每個房間的門有一把鑰匙,將物件儲存至房間中時,要順便擁有一把鑰匙,下次要取回物件時,就是根據這把鑰匙取得。
以上就是今天的內容。
Hi, I am Grant.
個人部落格 - https://grantliblog.wordpress.com/
個人網站 - https://grantli-website.netlify.app/#/mainpage
我的寫作專題 - https://vocus.cc/user/5af2e9b5fd89780001822db4#