在Java編程語言中,Set是一種無序元素的集合。它沒有重復的元素,每個元素在Set中只出現(xiàn)一次。Set有兩個主要實現(xiàn):HashSet和TreeSet,這里我們主要介紹HashSet。
Set<String> set = new HashSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); set.add("apple"); // 重復元素,不會被添加進Set System.out.println(set); // 輸出:[banana, orange, apple]
HashSet的實現(xiàn)基于哈希表的數(shù)據(jù)結(jié)構(gòu)。在添加一個元素時,HashSet會根據(jù)該元素的哈希值判斷是否已經(jīng)存在相同的元素。如果不存在,則將該元素添加進HashSet中。因為哈希表的存儲是無序的,所以HashSet中的元素也是無序的。
與List不同,Set沒有一個固定的下標值可以用于訪問元素。因此,我們無法使用下標來獲取Set中的元素。在遍歷Set時,我們可以使用for-each循環(huán)。
Set<String> set = new HashSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); for (String fruit : set) { System.out.println(fruit); } // 輸出: // banana // orange // apple
如果我們需要讓Set中的元素按照一定的順序排列,我們可以使用TreeSet。
Set<String> set = new TreeSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); System.out.println(set); // 輸出:[apple, banana, orange]
總之,Set是一種非常有用的數(shù)據(jù)結(jié)構(gòu)。在我們需要去重的情況下,使用Set可以簡單高效地解決問題。在復雜一些的場景下,我們可以選擇不同的Set實現(xiàn),以滿足不同的需求。