語言

IList 介面

定義

一個有序集合,使用者能精確控制每個元素在列表中的位置。

[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 版本中加入。

的 java.util.ListJava 檔。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
First

待補充

Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
IsEmpty

回傳是否包含任何 List 元素。

JniIdentityHashCode

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

(繼承來源 IJavaPeerable)
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)

如果此清單包含指定元素,則回傳 true 。

ContainsAll(ICollection)

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

CopyOf(ICollection)

回傳一個不可修改的清單,包含給定集合的元素,並依其迭代順序排列。

Disposed()

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

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

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

(繼承來源 IJavaPeerable)
Equals(Object)

將指定物件與此列表比較以求相等。

Finalized()

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

(繼承來源 IJavaPeerable)
ForEach(IConsumer)

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

(繼承來源 IIterable)
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)

將回傳的值設為 JniIdentityHashCode。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

一個有序集合,使用者能精確控制每個元素在列表中的位置。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference。

(繼承來源 IJavaPeerable)
Size()

傳回此清單中的項目數目。

Sort(IComparator)

依據指定 Comparator (可選操作)所誘導的順序排序此清單。

Spliterator()

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

(繼承來源 IIterable)
SubList(Int32, Int32)

回傳該列表中介於指定 fromIndex、 包含 與 toIndex、 排他之間的部分視圖。

ToArray()

回傳一個陣列,包含此列表中所有元素,依序排列(從第一個到最後一個元素)。

ToArray(IIntFunction)

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

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

回傳一個包含此列表中所有元素的陣列,按正確順序(從第一個到最後一個元素);回傳陣列的執行時型別即為指定陣列的類型。

UnregisterFromRuntime()

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

(繼承來源 IJavaPeerable)

明確介面實作

名稱 Description
IIterable.Spliterator()

在這個列表中的元素上建立 a Spliterator 。

ISequencedCollection.AddFirst(Object)

待補充

ISequencedCollection.AddLast(Object)

待補充

ISequencedCollection.RemoveFirst()

待補充

ISequencedCollection.RemoveLast()

待補充

ISequencedCollection.Reversed()

一個有序集合,使用者能精確控制每個元素在列表中的位置。

擴充方法

名稱 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 端是否有效。

適用於