一.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
TreeSetide