語言

ISet 介面

定義

一個不包含重複元素的集合。

[Android.Runtime.Register("java/util/Set", "", "Java.Util.ISetInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface ISet : IDisposable, Java.Interop.IJavaPeerable, Java.Util.ICollection
[<Android.Runtime.Register("java/util/Set", "", "Java.Util.ISetInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ISet = interface
    interface ICollection
    interface IIterable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
衍生
屬性
實作

備註

一個不包含重複元素的集合。 更正式地說,集合中沒有一對 e1 元素 和 e2 使得 e1.equals(e2),且最多包含一個零元素。 顧名思義,此介面模擬數學 集合 抽象。

Set介面對所有建構者的合約以及方法的合約Collectionaddequals,除了繼承自介面之外hashCode,還會附加額外的條件。 為了方便起見,這裡也包含了其他繼承方法的宣告。 (這些聲明所附的規範已針對 Set 介面量身訂做,但未包含任何額外規定。)

關於建構子的額外規定,不出所料,所有建構子必須建立一個集合,且不得包含重複元素(如上定義)。

注意:若使用可變物件作為場景元素,必須格外謹慎。 如果物件的值在物件仍是集合中的元素時,以影響 equals 比較的方式改變,則不指定該集合的行為。 此禁止的一個特殊情況是,集合不允許自己作為元素包含自己。

有些集合實作對可包含的元素有限制。 例如,有些實作禁止空元素,有些則對元素的類型有限制。 嘗試加入不合格元素會拋出未檢查的例外,通常是 NullPointerException 或 ClassCastException。 嘗試查詢不合格元素的存在可能會拋出例外,或直接回傳 false;有些實作會呈現前者,有些則會呈現後者。 更一般來說,嘗試對一個不合格元素進行操作,但其完成後不會讓該不合格元素入集合,可能會拋出例外,也可能成功,這取決於實作的選擇。 此類例外在此介面規範中標示為「可選」。

<h2>“不可修改”不可修改>集合</h2>

Set#of(Object...) Set.of靜Set#copyOf Set.copyOf態工廠方法與靜態工廠方法提供了一種方便的方式來建立不可修改的集合。 這些方法所建立的 Set 實例具有以下特性:

<ul><li>他們是<>不可修改/不可<更改>的。 元素無法新增或移除。 呼叫 Set 上的任何變異器方法都會被 UnsupportedOperationException 拋出。 然而,若所包含元素本身是可變的,可能導致集合行為不一致,或其內容看起來改變。 <李>:他們不允許 null 元素。 嘗試用 null 元素創建它們會得到 NullPointerException。 <李>如果所有元素都可以序列化,則它們是可序列化的。 <他們>在創造時會拒絕重複元素。 傳遞給靜態工廠方法的重複元素會得到 IllegalArgumentException。 <li>集合元素的迭代順序未明確規定,且可隨時變動。 <李>:它們是以價值為基礎的。 程式設計師應將 #equals(物件)相等的實例視為可互換,不應用於同步,否則可能會產生不可預測的行為。 例如,在未來版本中,同步可能會失敗。 呼叫者不應對回傳實例的身份做出任何假設。 工廠可以自由建立新實例或重用現有實例。 <li>它們依照序 號表單 頁面所指定的序列化。 </ul>

此介面是 Java 集合框架的成員。

在 1.2 版本中加入。

的 java.util.SetJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

屬性

名稱 Description
Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
IsEmpty

若此集合沒有元素,則返回真。

JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

一個不包含重複元素的集合。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
Add(Object)

若指定元素尚未存在,則將該元素加入此集合(可選操作)。

AddAll(ICollection)

如果指定集合中尚未存在的所有元素,則將它們加入此集合(可選操作)。

Clear()

移除此集合中的所有元素(可選操作)。

Contains(Object)

若此集合包含指定元素,則回傳 true 。

ContainsAll(ICollection)

若此集合包含指定集合的所有元素,則回傳 true 。

CopyOf(ICollection)

回傳一個不可修改的集合,包含給定集合的元素。

Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
Equals(Object)

將指定的物件與此集合比較以求相等。

Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
ForEach(IConsumer)

對每個元素 Iterable 執行指定動作,直到所有元素都處理完畢或動作拋出異常。

(繼承來源 IIterable)
GetHashCode()

回傳此集合的雜湊碼值。

Iterator()

回傳該集合中元素的迭代器。

Of()

回傳一個包含零元素的不可修改集合。

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

回傳一個包含十個元素的不可修改集合。

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object)

回傳一個包含九個元素的不可修改集合。

Of(Object, Object, Object, Object, Object, Object, Object, Object)

回傳一個包含八個元素的不可修改集合。

Of(Object, Object, Object, Object, Object, Object, Object)

回傳一個包含七個元素的不可修改集合。

Of(Object, Object, Object, Object, Object, Object)

回傳包含六個元素的不可修改集合。

Of(Object, Object, Object, Object, Object)

返回包含五個元素的不可修改集合。

Of(Object, Object, Object, Object)

回傳一個包含四個元素的不可修改集合。

Of(Object, Object, Object)

回傳包含三個元素的不可修改集合。

Of(Object, Object)

回傳一個包含兩個元素的不可修改集合。

Of(Object)

回傳一個包含一個元素的不可修改集合。

Of(Object[])

回傳一個包含任意數量元素的不可修改集合。

Remove(Object)

若該元素存在,則從此集合中移除該元素(可選操作)。

RemoveAll(ICollection)

從該集合中移除包含在指定集合中的所有元素(可選操作)。

RemoveIf(IPredicate)

移除該集合中所有滿足該謂詞的元素(可選操作)。

(繼承來源 ICollection)
RetainAll(ICollection)

僅保留該集合中包含於指定集合中的元素(可選操作)。

SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

一個不包含重複元素的集合。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference。

(繼承來源 IJavaPeerable)
Size()

回傳該集合中的元素數(其基數)。

Spliterator()

在由此Spliterator描述的元素上建立 a Iterable 。

(繼承來源 IIterable)
ToArray()

回傳包含該集合中所有元素的陣列。

ToArray(IIntFunction)

回傳包含此集合中所有元素的陣列,並使用所提供的 generator 函式來分配回傳的陣列。

(繼承來源 ICollection)
ToArray(Object[])

回傳包含此集合中所有元素的陣列;回傳陣列的執行時型別即為指定陣列的類型。

UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)

明確介面實作

名稱 Description
IIterable.Spliterator()

在此集合中建立 元素 Spliterator 。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

一個不包含重複元素的集合。

ToEnumerable(IIterable)

回傳 和 IEnumerable ,會對 Java IIterable進行迭代,允許 foreach 和 LINQ 與 Java 集合類型一起使用。 每個元素都會從其 Java 實例編組到對應的受管理型別。

ToEnumerable<T>(IIterable)

回傳 和 IEnumerable<T> ,該 在 Java IIterable上迭代,將每個元素 集結為 T。 這使得 foreach LINQ 可以搭配 Java 集合類型一起使用。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於