在本教程中,我們將學(xué)習(xí)Java中的Set接口及其方法。
Java Collections框架的Set接口提供Java中數(shù)學(xué)集合的功能。 它繼承了Collection接口。
與List接口不同,Set集合不能包含重復(fù)的元素。
由于Set是接口,因此無法從中創(chuàng)建對象。
為了使用Set接口的功能,我們可以使用以下類:
這些類在Collections框架中定義并實(shí)現(xiàn)Set接口。
該Set接口也擴(kuò)展這些子接口:
在Java中,必須導(dǎo)入java.util.Set包才能使用Set。
//使用HashSet實(shí)現(xiàn)Set Set<String> animals = new HashSet<>();
在這里,我們創(chuàng)建了一個Set稱為animals。我們已經(jīng)使用HashSet該類來實(shí)現(xiàn)Set接口。
Set接口包含Collection接口的所有方法。 這是因?yàn)镃ollection是Set的超級接口。
Set接口中還提供了Collection接口的一些常用方法:
add() - 將指定的元素添加到集合中
addAll() - 將指定集合的所有元素添加到集合中
iterator() -返回一個迭代器,該迭代器可用于順序訪問集合中的元素
remove() - 從集合中移除指定的元素
removeAll() - 從存在于另一個指定集合中的集合中刪除所有元素
keepAll() -保留集合中所有還存在于另一個指定集合中的所有元素
clear() - 從集合中刪除所有元素
size() - 返回集合的長度(元素數(shù))
toArray() - 返回包含集合中所有元素的數(shù)組
contains() - 如果集合包含指定的元素,則返回true
containsAll() - 如果集合包含指定集合的所有元素,則返回true
hashCode() -返回哈希碼值(集合中元素的地址)
Java Set接口允許我們執(zhí)行基本的數(shù)學(xué)集合運(yùn)算,例如并集,交集和子集。
Union - 為了得到兩個集合x和y的并集,我們可以使用x.addAll(y)
Intersection - 要獲得兩個集合x和y的交集,我們可以使用x.retainAll(y)
Subset - 要檢查x是否是y的子集,我們可以使用y.containsAll(x)
1.實(shí)現(xiàn)HashSet類
import java.util.Set; import java.util.HashSet; class Main { public static void main(String[] args) { //使用HashSet類創(chuàng)建集合 Set<Integer> set1 = new HashSet<>(); //將元素添加到set1 set1.add(2); set1.add(3); System.out.println("Set1: " + set1); //使用HashSet類創(chuàng)建另一個集合 Set<Integer> set2 = new HashSet<>(); //添加元素 set2.add(1); set2.add(2); System.out.println("Set2: " + set2); //兩個集合的并集 set2.addAll(set1); System.out.println("并集是: " + set2); } }
輸出結(jié)果
Set1: [2, 3] Set2: [1, 2] 并集是: [1, 2, 3]
要了解更多信息HashSet,請訪問Java HashSet。
2.實(shí)現(xiàn)TreeSet類
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; class Main { public static void main(String[] args) { //使用TreeSet類創(chuàng)建集合 Set<Integer> numbers = new TreeSet<>(); // 將元素添加到set集合 numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("TreeSet: " + numbers); //使用iterator()訪問元素 System.out.print("使用iterator()訪問元素: "); Iterator<Integer> iterate = numbers.iterator(); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } }
輸出結(jié)果
TreeSet: [1, 2, 3] 使用iterator()訪問元素: 1, 2, 3,
要了解更多信息TreeSet,請訪問Java TreeSet。
現(xiàn)在我們知道Set是什么,在接下來的教程中,我們將在EnumSet,HashSet,LinkedHashSet和TreeSet等類中看到其實(shí)現(xiàn)。