您好,登錄后才能下訂單哦!
本篇內容介紹了“Set接口的特點是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Set集合最大的特點就是不允許保存重復元素,其也是Collection子接口。
在JDK1.9以前Set集合與Collection集合的定義并無差別,Set繼續使用了Collection接口中提供的方法進行操作,但是從JDK1.9后,Set集合也像List集合一樣擴充了一些static方法,Set集合的定義如下:
public interface Set<E> extends Collection<E>
需要注意的是Set集合并不像List集合那樣擴充了許多的新方法,所以無法使用List集合中提供的get()方法,也就是說無法實現指定索引數據的獲取,Set接口的繼承關系如下。
Set接口繼承關系
從JDK1.9后,Set集合也提供了像List集合中類似的of()的靜態方法。下面就使用此方法進行Set集合特點的驗證。
范例:驗證Set集合特征
import java.util.Set;public class JavaAPIDemo {public static void main(String[] args) throws Exception { //進行Set集合數據的保存,并設置有重復的內容 Set<String> all=Set.of("Hello","World","MLDN","Hello","World"); all.forEach(System.out::println); //直接輸出 //Exception in thread "main">
當使用of()這個新方法的時候,如果發現集合中存在重復元素則會直接拋出異常。這與傳統的Set集合不保存重復元素的特點相一致,只不過自己拋出了異常而已。
Set集合的常規使用形式一定是依靠子類進行實例化的,所以Set接口之中有兩個常用的子類:HashSet、TreeSet。
HashSet是Set接口中使用最多的一個子類,其最大的特點就是保存的數據是無序的,而HashSet子類的繼承關系如下:
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable
這種繼承的形式和之前的ArrayList是非常相似的,那么現在來觀察一下類的繼承結構:
HashSet子類
范例:觀察HashSet類
import java.util.HashSet;import java.util.Set;public class JavaAPIDemo {public static void main(String[] args) throws Exception { Set<String> all = new HashSet<String>(); all.add("MLDN"); all.add("NiHao"); all.add("Hello"); all.add("Hello"); //重復元素 all.add("World"); all.forEach(System.out::println); } }/** * NiHao * Hello * World * MLDN */
通過執行結果就可以發現HashSet的操作特點:不允許保存重復元素(Set接口定義的),另外一個特點就是HashSet中保存的數據是無序的。
Set接口的另外一個子接口就是TreeSet,與HashSet最大區別在于TreeSet集合里面保存的數據是有序的,首先來觀察TreeSet類的定義:
public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, Serializable
在這個子類中依然繼承了AbstractSet父抽象類,同時又實現了一個NavigableSet父接口。
范例:使用TreeSet子類
import java.util.TreeSet;import java.util.Set;public class JavaAPIDemo {public static void main(String[] args) throws Exception { Set<String> all = new TreeSet<String>(); all.add("MLDN"); all.add("NiHao"); all.add("Hello"); all.add("Hello"); //重復元素 all.add("World"); all.forEach(System.out::println); } }/** * Hello * MLDN * NiHao * World */
當利用TreeSet保存數據的時候,所有的數據將按照數據的升序進行自動排序處理。
“Set接口的特點是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。