IList 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個有序集合,使用者能精確控制每個元素在列表中的位置。
[Android.Runtime.Register("java/util/List", "", "Java.Util.IListInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IList : IDisposable, Java.Interop.IJavaPeerable, Java.Util.ISequencedCollection
[<Android.Runtime.Register("java/util/List", "", "Java.Util.IListInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IList = interface
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ISequencedCollection
- 衍生
- 屬性
- 實作
備註
一個有序集合,使用者能精確控制每個元素在列表中的位置。 使用者可以依照整數索引(在列表中的位置)存取元素,並在列表中搜尋元素。
與集合不同,列表通常允許重複元素。 更正式地說,列表通常允許元素對 e1 和 e2 ,使得 e1.equals(e2),且如果允許空元素,通常允許多個空元素。 有人可能會想實作一個清單,透過執行時例外來阻止重複,當使用者嘗試插入時拋出例外,但我們預期這種使用會很少見。
介面在 List 、 Collection、 iterator、 add和 remove 方法的契約上,除了介面中equals指定的規定外,還會hashCode附加其他條件。 為了方便起見,這裡也包含了其他繼承方法的宣告。
介面 List 提供四種位置(索引)存取清單元素的方法。 串列(像 Java 陣列)是以零為基礎的。 請注意,這些操作在某些實作 LinkedList (例如類別)中,執行時間可能與索引值成正比。 因此,若呼叫者不熟悉實作,通常比透過清單索引更可取。
介面 List 提供一個特殊的迭代器,稱為 ListIterator,除了介面正常操作外,還能進行元素插入與替換,以及雙向存取 Iterator 。 提供一種方法,可取得從指定位置開始的列表迭代器。
介面 List 提供兩種方法來搜尋指定物件。 從性能角度來看,這些方法應謹慎使用。 在許多實作中,它們會執行昂貴的線性搜尋。
介面 List 提供兩種方法,能有效地在清單中的任意點插入與移除多個元素。
注意:雖然列表可以將自己包含為元素,但建議極度謹慎: equals 與 hashCode 方法已不再明確定義於此類清單中。
部分清單實作對其可包含的元素有限制。 例如,有些實作禁止空元素,有些則對元素的類型有限制。 嘗試加入不合格元素會拋出未檢查的例外,通常是 NullPointerException 或 ClassCastException。 嘗試查詢不合格元素的存在可能會拋出例外,或直接回傳 false;有些實作會呈現前者,有些則會呈現後者。 更一般來說,嘗試對不合格元素進行操作,但其完成後不會讓該不合格元素插入清單,可能會拋出例外,也可能成功,這取決於實作的選擇。 此類例外在此介面規範中標示為「可選」。
<h2>“不可修改”不可修改列表>/<h2>
List#of(Object...) List.of靜List#copyOf List.copyOf態工廠方法提供了一種方便的方式來建立不可修改的清單。 這些方法所建立的 List 實例具有以下特性:
<ul><li>他們是<>不可修改/不可<更改>的。 元素無法新增、移除或替換。 呼叫清單上的任何變異器方法都會被 UnsupportedOperationException 拋出。 然而,如果所包含的元素本身是可變的,這可能會導致清單的內容看起來會改變。
<李>:他們不允許 null 元素。 嘗試用 null 元素創建它們會得到 NullPointerException。
<李>如果所有元素都可以序列化,則它們是可序列化的。
<li>列表中元素的順序與所提供參數的順序,或是所給陣列中元素的順序相同。
<li>清單及其#subList(int, int) subList檢視實作了介面。RandomAccess
<李>:它們是以價值為基礎的。 程式設計師應將 #equals(物件)相等的實例視為可互換,不應用於同步,否則可能會產生不可預測的行為。 例如,在未來版本中,同步可能會失敗。 呼叫者不應對回傳實例的身份做出任何假設。 工廠可以自由建立新實例或重用現有實例。
<li>它們依照序 號表單 頁面所指定的序列化。
</ul>
在 1.2 版本中加入。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| First |
待補充 |
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| IsEmpty |
回傳是否包含任何 |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
一個有序集合,使用者能精確控制每個元素在列表中的位置。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| Last |
待補充 |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Add(Int32, Object) |
在此清單中插入指定元素於指定位置(可選操作)。 |
| Add(Object) |
將指定元素附加到此清單的末尾(可選操作)。 |
| AddAll(ICollection) |
將指定集合中的所有元素附加到該清單的末尾,依照指定集合的迭代器回傳的順序(可選操作)。 |
| AddAll(Int32, ICollection) |
將指定集合中的所有元素插入此清單中指定的位置(可選操作)。 |
| AddFirst(Object) |
新增一個元素作為此集合的第一個元素(可選操作)。 (繼承來源 ISequencedCollection) |
| AddLast(Object) |
將元素加入為此集合的最後一個元素(可選操作)。 (繼承來源 ISequencedCollection) |
| Clear() |
移除此清單中的所有元素(可選操作)。 |
| Contains(Object) |
如果此清單包含指定元素,則回傳 |
| ContainsAll(ICollection) |
若此清單包含指定集合的所有元素,則回傳 |
| CopyOf(ICollection) |
回傳一個不可修改的清單,包含給定集合的元素,並依其迭代順序排列。 |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Equals(Object) |
將指定物件與此列表比較以求相等。 |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| ForEach(IConsumer) |
對每個元素 |
| Get(Int32) |
回傳該列表中指定位置的元素。 |
| GetFirst() |
取得這個集合的第一個元素。 (繼承來源 ISequencedCollection) |
| GetHashCode() |
回傳此清單的雜湊碼值。 |
| GetLast() |
拿到這個合集的最後一個元素。 (繼承來源 ISequencedCollection) |
| IndexOf(Object) |
回傳該清單中該元素首次出現的索引,若列表中未包含該元素則回傳 -1。 |
| Iterator() |
回傳一個按正確順序處理此列表中元素的迭代器。 |
| LastIndexOf(Object) |
回傳該列表中指定元素最後出現的索引,若列表中未包含該元素則回傳 -1。 |
| ListIterator() |
回傳對該清單中元素的列表迭代器(依正確順序)。 |
| ListIterator(Int32) |
回傳一個列表迭代器,從列表中指定的位置開始,對該列表中的元素(依正確順序)進行。 |
| 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(Int32) |
移除該清單中指定位置的元素(可選操作)。 |
| Remove(Object) |
若有指定元素,則從列表中移除該元素的首次出現(可選操作)。 |
| RemoveAll(ICollection) |
從此清單中移除指定集合中所有元素(可選操作)。 |
| RemoveFirst() |
移除並回傳此集合的第一個元素(可選操作)。 (繼承來源 ISequencedCollection) |
| RemoveIf(IPredicate) |
移除該集合中所有滿足該謂詞的元素(可選操作)。 (繼承來源 ICollection) |
| RemoveLast() |
移除並回傳此集合的最後一個元素(可選操作)。 (繼承來源 ISequencedCollection) |
| ReplaceAll(IUnaryOperator) |
將此清單中的每個元素替換為對該元素套用運算子的結果(可選操作)。 |
| RetainAll(ICollection) |
僅保留此清單中指定集合中包含的元素(可選操作)。 |
| Reversed() |
回傳此集合的逆序視圖。 (繼承來源 ISequencedCollection) |
| Set(Int32, Object) |
將此列表中指定位置的元素替換為指定元素(可選操作)。 |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
一個有序集合,使用者能精確控制每個元素在列表中的位置。 (繼承來源 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| Size() |
傳回此清單中的項目數目。 |
| Sort(IComparator) |
依據指定 |
| Spliterator() |
在由此 |
| SubList(Int32, Int32) |
回傳該列表中介於指定 |
| ToArray() |
回傳一個陣列,包含此列表中所有元素,依序排列(從第一個到最後一個元素)。 |
| ToArray(IIntFunction) |
回傳包含此集合中所有元素的陣列,並使用所提供的 |
| ToArray(Object[]) |
回傳一個包含此列表中所有元素的陣列,按正確順序(從第一個到最後一個元素);回傳陣列的執行時型別即為指定陣列的類型。 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
明確介面實作
| 名稱 | Description |
|---|---|
| IIterable.Spliterator() |
在這個列表中的元素上建立 a |
| ISequencedCollection.AddFirst(Object) |
待補充 |
| ISequencedCollection.AddLast(Object) |
待補充 |
| ISequencedCollection.RemoveFirst() |
待補充 |
| ISequencedCollection.RemoveLast() |
待補充 |
| ISequencedCollection.Reversed() |
一個有序集合,使用者能精確控制每個元素在列表中的位置。 |
擴充方法
| 名稱 | 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) |
試著強制 |