Java中的Map和Set是兩個(gè)非常重要的數(shù)據(jù)結(jié)構(gòu),它們都屬于Java集合類(lèi)庫(kù)中的一部分。
Map是一種可以存儲(chǔ)鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),在Map中,每個(gè)元素都包含了兩個(gè)部分,即一個(gè)Key和一個(gè)Value。我們可以使用Key來(lái)訪問(wèn)對(duì)應(yīng)的Value。
Map<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); map.put("orange", 3); System.out.println(map.get("apple")); //輸出1 System.out.println(map.get("banana")); //輸出2 System.out.println(map.get("orange")); //輸出3
Set是一種可以存儲(chǔ)不包含重復(fù)元素的數(shù)據(jù)結(jié)構(gòu),和List不同,Set沒(méi)有索引,因此我們不能通過(guò)索引訪問(wèn)其中的元素。Set中的元素必須要實(shí)現(xiàn)hashCode()和equals()方法,這樣才能保證Set中沒(méi)有重復(fù)元素。
Set<String> set = new HashSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); System.out.println(set.contains("apple")); //輸出true System.out.println(set.contains("pear")); //輸出false
總結(jié)來(lái)說(shuō),Map是一種可以為元素分配Key的數(shù)據(jù)結(jié)構(gòu),而Set則是一種不包含重復(fù)元素的數(shù)據(jù)結(jié)構(gòu)。