Java是一種面向對象的編程語言,它內置了許多集合類來實現集合操作。其中,java.util
包中的Set
和Map
集合類被廣泛使用。
Set
是一種無序且不允許重復元素的集合,它的實現類有HashSet
和TreeSet
。其中,HashSet
基于哈希表實現,插入、刪除和查找元素的時間復雜度為常數級別;TreeSet
基于紅黑樹實現,插入、刪除和查找元素的時間復雜度為對數級別。
Set<String> set = new HashSet<>();
set.add("hello");
set.add("world");
set.add("java");
set.add("java");
System.out.println(set);
上述代碼中,先創建了一個HashSet
對象,插入了4個字符串元素。由于Set
不允許重復元素,所以第二個java
字符串并沒有被插入。最后打印set
對象,得到的輸出結果為:
[hello, world, java]
Set
集合類還提供了許多操作,例如contains
、remove
和retainAll
等。其中,retainAll
可以用來求兩個Set
集合的交集。
Set<String> set1 = new HashSet<>();
set1.add("hello");
set1.add("world");
set1.add("java");
Set<String> set2 = new HashSet<>();
set2.add("world");
set2.add("python");
set2.add("java");
set1.retainAll(set2);
System.out.println(set1);
上述代碼中,創建了兩個HashSet
對象set1
和set2
,分別插入了3個字符串元素。然后使用retainAll
方法求它們的交集,最后打印set1
對象,得到的輸出結果為:
[world, java]
Set
集合類可以應用于很多實際場景,例如數據去重、散列表實現等。了解它的使用方法和性質對于Java開發工程師來說是非常重要的。