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