ISet 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個不包含重複元素的集合。
[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 版本中加入。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| IsEmpty |
若此集合沒有元素,則返回真。 |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
一個不包含重複元素的集合。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
明確介面實作
| 名稱 | Description |
|---|---|
| IIterable.Spliterator() |
在此集合中建立 元素 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個不包含重複元素的集合。 |
| ToEnumerable(IIterable) |
回傳 和 IEnumerable ,會對 Java IIterable進行迭代,允許 |
| ToEnumerable<T>(IIterable) |
回傳 和 IEnumerable<T> ,該 在 Java IIterable上迭代,將每個元素 集結為 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |