ArrayList Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Resizable-Arrayimplementierung der List Schnittstelle.
[Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class ArrayList : Java.Util.AbstractList, IDisposable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IRandomAccess
[<Android.Runtime.Register("java/util/ArrayList", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ArrayList = class
inherit AbstractList
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IList
interface ICollection
interface IIterable
interface ISequencedCollection
interface IRandomAccess
- Vererbung
- Attribute
- Implementiert
Hinweise
Resizable-Arrayimplementierung der List Schnittstelle. Implementiert alle optionalen Listenvorgänge und erlaubt alle Elemente, einschließlich null. Zusätzlich zur Implementierung der List Schnittstelle bietet diese Klasse Methoden zum Bearbeiten der Größe des Arrays, das intern zum Speichern der Liste verwendet wird. (Diese Klasse ist ungefähr gleichbedeutend mit Vectorder Ausnahme, dass sie nicht synchronisiert ist.)
Die sizeVorgänge , isEmpty, , get, setund iteratorlistIteratorVorgänge werden in konstanter Zeit ausgeführt. Der add Vorgang wird in amortisierter Konstantenzeit ausgeführt, d. h. das Hinzufügen von n-Elementen erfordert O(n) Zeit. Alle anderen Vorgänge werden in linearer Zeit (grob gesagt) ausgeführt. Der konstante Faktor ist im Vergleich zu dieser für die LinkedList Implementierung niedrig.
Jede ArrayList Instanz verfügt über eine Kapazität. Die Kapazität ist die Größe des Arrays, das zum Speichern der Elemente in der Liste verwendet wird. Es ist immer mindestens so groß wie die Listengröße. Wenn Elemente zu einer ArrayList hinzugefügt werden, wächst die Kapazität automatisch. Die Details der Wachstumspolitik werden nicht über die Tatsache hinaus angegeben, dass das Hinzufügen eines Elements konstante amortisierte Zeitkosten aufweist.
Eine Anwendung kann die Kapazität einer ArrayList Instanz erhöhen, bevor eine große Anzahl von Elementen mithilfe des ensureCapacity Vorgangs hinzugefügt wird. Dies kann die Menge der inkrementellen Neuverteilung verringern.
<strong>Note that this implementation is not synchronized.</strong> Wenn mehrere Threads gleichzeitig auf eine ArrayList Instanz zugreifen und mindestens einer der Threads die Liste strukturell ändert, muss sie extern synchronisiert werden. (Eine strukturelle Änderung ist jeder Vorgang, der ein oder mehrere Elemente hinzufügt oder löscht oder die Größe des Sicherungsarrays explizit ändert. Das festlegen des Werts eines Elements ist keine strukturelle Änderung.) Dies wird in der Regel durch Synchronisieren für ein Objekt erreicht, das die Liste natürlich kapselt.
Wenn kein solches Objekt vorhanden ist, sollte die Liste mit der Collections#synchronizedList Collections.synchronizedList Methode "umbrochen" werden. Dies geschieht am besten zur Erstellungszeit, um versehentlichen nicht synchronisierten Zugriff auf die Liste zu verhindern:
List list = Collections.synchronizedList(new ArrayList(...));
Die von dieser Klasse #iterator() iterator zurückgegebenen Iteratoren sind #listIterator(int) listIterator<em>fail-fast</em>: Wenn die Liste nach der Erstellung des Iterators strukturell geändert wird, außer über die eigenen ListIterator#remove() remove Oder ListIterator#add(Object) add Methoden des Iterators, löst der Iterator einen .ConcurrentModificationException Daher schlägt der Iterator angesichts der gleichzeitigen Änderung schnell und sauber fehl, anstatt willkürliches, nicht deterministisches Verhalten zu einem unbestimmten Zeitpunkt in der Zukunft zu riskieren.
Beachten Sie, dass das fehlschnelle Verhalten eines Iterators nicht garantiert werden kann, da es im Allgemeinen unmöglich ist, im Vorhandensein nicht synchronisierter gleichzeitiger Änderungen harte Garantien zu gewährleisten. Fail-fast iterators throw ConcurrentModificationException on a best-effort. Daher wäre es falsch, ein Programm zu schreiben, das von dieser Ausnahme für seine Richtigkeit abhängig ist: Das fehlerschnelle Verhalten von Iteratoren sollte nur verwendet werden, um Fehler zu erkennen.
Diese Klasse ist ein Mitglied des Java Collections Framework.
In 1.2 hinzugefügt.
Java Dokumentation für java.util.ArrayList.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| ArrayList() |
Erstellt eine leere Liste mit einer Anfangskapazität von zehn. |
| ArrayList(ICollection) |
Erstellt eine Liste, die die Elemente der angegebenen Auflistung enthält, in der Reihenfolge, in der sie vom Iterator der Auflistung zurückgegeben werden. |
| ArrayList(Int32) |
Erstellt eine leere Liste mit der angegebenen Anfangskapazität. |
| ArrayList(IntPtr, JniHandleOwnership) |
Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| First |
Soll hinzugefügt werden |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| IsEmpty |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniManagedPeerState |
Resizable-Arrayimplementierung der |
| JniPeerMembers |
Resizable-Arrayimplementierung der |
| Last |
Soll hinzugefügt werden |
| ModCount |
Die Anzahl der strukturellen Änderungen dieser Liste. (Geerbt von AbstractList) |
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. (Geerbt von Object) |
| ThresholdClass |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
| ThresholdType |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
Methoden
| Name | Beschreibung |
|---|---|
| Add(Int32, Object) |
Soll hinzugefügt werden (Geerbt von AbstractList) |
| Add(Object) |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| AddAll(ICollection) |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| AddAll(Int32, ICollection) |
Soll hinzugefügt werden (Geerbt von AbstractList) |
| AddFirst(Object) |
Soll hinzugefügt werden |
| AddLast(Object) |
Soll hinzugefügt werden |
| Clear() |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| Clone() |
Gibt eine flache Kopie dieser |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Resizable-Arrayimplementierung der |
| Contains(Object) |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| ContainsAll(ICollection) |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| Dispose() |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| Dispose(Boolean) |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| DisposeUnlessReferenced() |
Resizable-Arrayimplementierung der |
| EnsureCapacity(Int32) |
Erhöht die Kapazität dieser |
| Equals(Object) |
Resizable-Arrayimplementierung der |
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| ForEach(IConsumer) |
Resizable-Arrayimplementierung der |
| Get(Int32) |
Gibt das Element an der angegebenen Position in dieser Liste zurück. |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| IndexOf(Object) |
Soll hinzugefügt werden (Geerbt von AbstractList) |
| Iterator() |
Gibt einen Iterator über die Elemente in dieser Liste in der richtigen Reihenfolge zurück. (Geerbt von AbstractList) |
| JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
| LastIndexOf(Object) |
Soll hinzugefügt werden (Geerbt von AbstractList) |
| ListIterator() |
Soll hinzugefügt werden (Geerbt von AbstractList) |
| ListIterator(Int32) |
Soll hinzugefügt werden (Geerbt von AbstractList) |
| Notify() |
Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet. (Geerbt von Object) |
| NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
| Remove(Int32) |
Soll hinzugefügt werden (Geerbt von AbstractList) |
| Remove(Object) |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| RemoveAll(ICollection) |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| RemoveFirst() |
Soll hinzugefügt werden |
| RemoveIf(IPredicate) |
Resizable-Arrayimplementierung der |
| RemoveLast() |
Soll hinzugefügt werden |
| RemoveRange(Int32, Int32) |
Entfernt aus dieser Liste alle Elemente, deren Index zwischen |
| ReplaceAll(IUnaryOperator) |
Resizable-Arrayimplementierung der |
| RetainAll(ICollection) |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| Set(Int32, Object) |
Soll hinzugefügt werden (Geerbt von AbstractList) |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Resizable-Arrayimplementierung der |
| Size() |
Gibt die Anzahl der Elemente in dieser Liste zurück. |
| Sort(IComparator) |
Resizable-Arrayimplementierung der |
| Spliterator() |
Erstellt eine <em>late-binding</em und >em<fail-fast>/em<> |
| SubList(Int32, Int32) |
Soll hinzugefügt werden (Geerbt von AbstractList) |
| ToArray() |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| ToArray(Object[]) |
Soll hinzugefügt werden (Geerbt von AbstractCollection) |
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| TrimToSize() |
Schneidet die Kapazität dieser |
| UnregisterFromRuntime() |
Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf. (Geerbt von Object) |
| Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><> (Geerbt von Object) |
| Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IJavaPeerable.Disposed() |
Resizable-Arrayimplementierung der |
| IJavaPeerable.Finalized() |
Resizable-Arrayimplementierung der |
| IJavaPeerable.JniObjectReferenceControlBlock |
Resizable-Arrayimplementierung der |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Resizable-Arrayimplementierung der |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Resizable-Arrayimplementierung der |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Resizable-Arrayimplementierung der |
| IJavaPeerable.UnregisterFromRuntime() |
Resizable-Arrayimplementierung der |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
Resizable-Arrayimplementierung der |
| ToEnumerable(IIterable) |
Resizable-Arrayimplementierung der |
| ToEnumerable<T>(IIterable) |
Resizable-Arrayimplementierung der |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |