中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Set接口的特點是什么

發布時間:2021-10-13 10:36:33 來源:億速云 閱讀:306 作者:iii 欄目:編程語言

本篇內容介紹了“Set接口的特點是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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接口的特點是什么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子類

HashSet是Set接口中使用最多的一個子類,其最大的特點就是保存的數據是無序的,而HashSet子類的繼承關系如下:

public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable

這種繼承的形式和之前的ArrayList是非常相似的,那么現在來觀察一下類的繼承結構:

Set接口的特點是什么
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中保存的數據是無序的。

TreeSet子類

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接口的特點是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

set
AI

罗江县| 太白县| 临武县| 宾阳县| 鹿泉市| 山丹县| 荥经县| 夏津县| 普兰店市| 呼图壁县| 安多县| 长兴县| 高雄市| 新田县| 沽源县| 绍兴县| 钦州市| 裕民县| 和顺县| 石台县| 长寿区| 博乐市| 新平| 武宁县| 三台县| 嘉黎县| 青龙| 庄河市| 高邑县| 凤山市| 观塘区| 额敏县| 六枝特区| 广水市| 昌乐县| 会宁县| 华阴市| 浦县| 平遥县| 永福县| 东乡|