Java 集合之Set簡介

一.Set集合
Set:不包含重複元素的集合。 更正式地,集合不包含一對元素e1和e2 ,使得e1.equals(e2) ,並且最多一個空元素。正如其名稱所暗示的那樣,這個接口模擬了數學集抽象。
一些集合實現對它們可能包含的元素有限制。 例如,一些實現禁止空元素,有些實現對元素的類型有限制。 嘗試添加不合格元素會引發未經檢查的異常,通常爲NullPointerException或ClassCastException 。 嘗試查詢不合格元素的存在可能會引發異常,或者可能只是返回false; 一些實現將展現出前者的行爲,一些實現將展現出後者。 更一般來說,嘗試對不符合條件的元素的操作,其完成不會導致不合格元素插入到集合中,可能會導致異常,或者可能會成功執行該選項。此異常在此接口的規範中標記爲“可選”。
二.Set集合和List集合的區別
Set集合是無序的,其值不能重複;而List是有序的集合,值可以重複。
此處的無序是指存儲的順序與取出的順序不同,但是它每次取出的順序是相同的,並不是說每次取出的順序不同,此處的無序和Python中字典無序概念不同;在Python字典中的無序是指每次取出key值的順序不同。
三.Set常見的方法

返回值類型 方法名 備註
boolean add(E e) 如果指定的元素不存在,則將其指定的元素添加(可選操作)。
boolean addAll(Collection<? extends E> c) 將指定集合中的所有元素添加到此集合(如果尚未存在)(可選操作)。
void clear() 從此集合中刪除所有元素(可選操作)。
boolean contains(Object o) 如果此集合包含指定的元素,則返回 true 。
boolean containsAll(Collection<?> c) 返回 true如果此集合包含所有指定集合的元素。
boolean equals(Object o) 將指定的對象與此集合進行比較以實現相等。
int hashCode() 返回此集合的哈希碼值。
boolean isEmpty() 如果此集合不包含元素,則返回 true 。
Iterator<E> iterator() 返回此集合中元素的迭代器。
boolean remove(Object o) 如果存在,則從該集合中刪除指定的元素(可選操作)。
boolean removeAll(Collection<?> c) 從此集合中刪除指定集合中包含的所有元素(可選操作)。
boolean retainAll(Collection<?> c) 僅保留該集合中包含在指定集合中的元素(可選操作)。
int size() 返回此集合中的元素數(其基數)。
default Spliterator<E> spliterator() 在此集合中的元素上創建一個 Spliterator 。
Object[] toArray() 返回一個包含此集合中所有元素的數組。
<T> T[] toArray(T[] a) 返回一個包含此集合中所有元素的數組; 返回的數組的運行時類型是指定數組的運行時類型。

四.Set常見的子類對象:
HashSet
TreeSet

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章