Sprache

IDeque Schnittstelle

Definition

Eine lineare Auflistung, die das Einfügen und Entfernen von Elementen an beiden Enden unterstützt.

[Android.Runtime.Register("java/util/Deque", "", "Java.Util.IDequeInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IDeque : IDisposable, Java.Interop.IJavaPeerable, Java.Util.IQueue, Java.Util.ISequencedCollection
[<Android.Runtime.Register("java/util/Deque", "", "Java.Util.IDequeInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IDeque = interface
    interface IQueue
    interface ICollection
    interface IIterable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ISequencedCollection
Abgeleitet
Attribute
Implementiert

Hinweise

Eine lineare Auflistung, die das Einfügen und Entfernen von Elementen an beiden Enden unterstützt. Der Name deque ist kurz für "doppelende Warteschlange" und wird in der Regel als "Deck" ausgesprochen. Die meisten Deque Implementierungen setzen keine festen Grenzwerte für die Anzahl der Elemente, die sie enthalten können, aber diese Schnittstelle unterstützt kapazitätsbeschränkte Deques sowie solche ohne feste Größenbeschränkung.

Diese Schnittstelle definiert Methoden für den Zugriff auf die Elemente an beiden Enden der Deque. Methoden werden bereitgestellt, um das Element einzufügen, zu entfernen und zu untersuchen. Jede dieser Methoden ist in zwei Formen vorhanden: Eine löst eine Ausnahme aus, wenn der Vorgang fehlschlägt, gibt die andere einen speziellen Wert (entweder null oder false, je nach Vorgang) zurück. Die letztere Form des Einfügevorgangs wurde speziell für die Verwendung mit kapazitätsbeschränkten Deque Implementierungen entwickelt. In den meisten Implementierungen können Einfügevorgänge nicht fehlschlagen.

Die oben beschriebenen zwölf Methoden sind in der folgenden Tabelle zusammengefasst:

<table class="striped">caption Summary of Deque methods</caption><thead><tr><td rowspan="2">/td<><th scope="colspan="2"> First Element (Head)</th th><scope="colspan="2"> Last Element (Tail)</th></tr tr><><th scope="col" style="font-weight:normal; font-style:italic">Throws exception</th th><scope="col" style="font-weight:>< normal; font-style:italic">Special value</th th><scope="col" style="font-weight:normal; font-style:italic">Throws exception</th th><scope="col" style="font-weight:normal; font-style:italic">Special value</th></tr></thead><tbody><tr><th scope="row">Insert</th><td>#addFirst(Object) addFirst(e)</td><>#offerFirst(Object) offerFirst(e)<><>#addLast(Object) addLast(e)</td><td>#offerLast(Object) offerLast(e)</td></tr tr><><th scope="row">Remove</th><td>#removeFirst() removeFirst()</td><td>#pollFirst() pollFirst()</td><td>#removeLast() removeLast()</td/td/td><>#pollLast() pollLast()<></tr tr><><th scope="row">Examine</th><td>#getFirst() getFirst()</td><td>#peekFirst() peekFirst()</td><td>#getLast() getLast()</t><td>#peekLast() peekLast()</td></tr></tbody></table>

Diese Schnittstelle erweitert die Queue Schnittstelle. Wenn eine Deque als Warteschlange verwendet wird, ergibt sich das FIFO-Verhalten (First-In-First-Out) verhalten. Elemente werden am Ende der Deque hinzugefügt und von Anfang an entfernt. Die von der Queue Schnittstelle geerbten Methoden entsprechen genau Deque den Methoden, wie in der folgenden Tabelle angegeben:

<table class="striped">caption Comparison of Queue and Deque methods</caption><thead><tr><th scope="col">< Method>/th thQueue<scope="col"> Equivalent < Method>/thDeque</tr/thead><tbody><tr><>< th scope="row"><>/th#add(Object) add(e)<td><>/td#addLast(Object) addLast(e)</tr tr><><th scope="row"><>/th#offer(Object) offer(e)<><td>#offerLast(Object) offerLast(e)</td></tr tr><><th scope="row">#remove() remove()</th><td/td>#removeFirst() removeFirst()<></tr tr><><th scope="row">#poll() poll()</th><td/td>#pollFirst() pollFirst()<></tr tr><><th scope="row">#element() element()</th><td/td>#getFirst() getFirst()<></tr tr><><th scope="row">#peek() peek()</th><td>#peekFirst() peekFirst()</td></tr></tbody></table>

Deques können auch als LIFO -Stapel (Last-In-First-Out) verwendet werden. Diese Schnittstelle sollte vor der Legacyklasse Stack verwendet werden. Wenn eine Deque als Stapel verwendet wird, werden Elemente vom Anfang der Deque verschoben und eingetaucht. Stapelmethoden entsprechen Methoden wie Deque in der folgenden Tabelle angegeben:

<table class="striped">caption Comparison of Stack and Deque methods</caption><thead><tr><th scope="col"> Stack Method</th th><scope="col"> Equivalent < Method>/thDeque</tr/thead><tbody><tr><>< th scope="row"><>/th#push(Object) push(e)<td><>/td#addFirst(Object) addFirst(e)</tr tr><><th scope="row"><>/th#pop() pop()<><td>#removeFirst() removeFirst()</td></tr tr><><th scope="row">#peek() peek()</th><td/td>#getFirst() getFirst()<></tr></tbody></table>

Beachten Sie, dass die #peek peek Methode gleichermaßen gut funktioniert, wenn eine Deque als Warteschlange oder stapel verwendet wird. In beiden Fällen werden Elemente vom Anfang der Deque gezeichnet.

Diese Schnittstelle bietet zwei Methoden zum Entfernen von Innenelementen #removeFirstOccurrence removeFirstOccurrence und #removeLastOccurrence removeLastOccurrence.

List Im Gegensatz zur Schnittstelle bietet diese Schnittstelle keine Unterstützung für den indizierten Zugriff auf Elemente.

Deque Implementierungen sind zwar nicht unbedingt erforderlich, um das Einfügen von NULL-Elementen zu verbieten, sie werden jedoch dringend empfohlen, dies zu tun. Benutzer von Deque Implementierungen, die NULL-Elemente zulassen, werden dringend empfohlen, die Möglichkeit zum Einfügen von Nullen nicht zu nutzen. Dies liegt daran, dass null sie von verschiedenen Methoden als spezieller Rückgabewert verwendet wird, um anzugeben, dass die Deque leer ist.

Deque Implementierungen definieren in der Regel keine elementbasierten Versionen der equals Und hashCode Methoden, sondern erben die identitätsbasierten Versionen von der Klasse Object.

In 1.6 hinzugefügt.

Java Dokumentation für java.util.Deque.

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.

Eigenschaften

Name Beschreibung
First

Ruft das erste Element dieser Deque ab, entfernt jedoch nicht.

Handle

Ruft den JNI-Wert des zugrunde liegenden Android-Objekts ab.

(Geerbt von IJavaObject)
IsEmpty

Gibt zurück true , wenn dies Collection keine Elemente enthält.

(Geerbt von ICollection)
JniIdentityHashCode

Gibt den Wert java.lang.System.identityHashCode() für die umbrochene Instanz zurück.

(Geerbt von IJavaPeerable)
JniManagedPeerState

Status des verwalteten Peers.

(Geerbt von IJavaPeerable)
JniObjectReferenceControlBlock

Eine lineare Auflistung, die das Einfügen und Entfernen von Elementen an beiden Enden unterstützt.

(Geerbt von IJavaPeerable)
JniPeerMembers

Mitgliedszugriff und Aufrufunterstützung.

(Geerbt von IJavaPeerable)
Last

Ruft das letzte Element dieser Deque ab, entfernt jedoch nicht.

PeerReference

Gibt eine JniObjectReference der umbrochenen Java Objektinstanz zurück.

(Geerbt von IJavaPeerable)

Methoden

Name Beschreibung
Add(Object)

Fügt das angegebene Element in die Warteschlange ein, die durch diese Deque dargestellt wird (d. h. am Ende dieser Deque), wenn dies sofort möglich ist, ohne kapazitätseinschränkende Einschränkungen zu verletzen, beim Erfolg zurückzukehren und einen true Wenn zurzeit kein Leerraum verfügbar ist, zurückzugebenIllegalStateException.

AddAll(ICollection)

Fügt alle Elemente in der angegebenen Auflistung dieser Auflistung hinzu (optionaler Vorgang).

(Geerbt von ICollection)
AddFirst(Object)

Fügt das angegebene Element an der Vorderseite dieser Deque ein, wenn es möglich ist, dies sofort zu tun, ohne Kapazitätsbeschränkungen zu verletzen, wenn IllegalStateException kein Leerraum verfügbar ist.

AddLast(Object)

Fügt das angegebene Element am Ende dieser Deque ein, wenn es möglich ist, dies sofort zu tun, ohne Kapazitätsbeschränkungen zu verletzen, wenn IllegalStateException kein Leerraum verfügbar ist.

Clear()

Entfernt alle Elemente aus dieser Auflistung (optionaler Vorgang).

(Geerbt von ICollection)
Contains(Object)

Gibt zurück true , wenn diese Deque das angegebene Element enthält.

ContainsAll(ICollection)

Gibt zurück true , wenn diese Auflistung alle Elemente in der angegebenen Auflistung enthält.

(Geerbt von ICollection)
DescendingIterator()

Gibt einen Iterator über die Elemente in dieser Deque in umgekehrter sequenzieller Reihenfolge zurück.

Disposed()

Wird aufgerufen, wenn die Instanz verworfen wurde.

(Geerbt von IJavaPeerable)
DisposeUnlessReferenced()

Wenn keine offenen Verweise auf diese Instanz vorhanden sind, wird nichts aufgerufen Dispose(). Andernfalls wird nichts ausgeführt.

(Geerbt von IJavaPeerable)
Element()

Ruft den Kopf der Warteschlange ab, die durch diese Deque dargestellt wird(d. r. das erste Element dieser Deque).

Equals(Object)

Vergleicht das angegebene Objekt mit dieser Auflistung für die Gleichheit.

(Geerbt von ICollection)
Finalized()

Wird aufgerufen, wenn die Instanz abgeschlossen wurde.

(Geerbt von IJavaPeerable)
ForEach(IConsumer)

Führt die angegebene Aktion für jedes Element der Iterable Elemente aus, bis alle Elemente verarbeitet wurden, oder die Aktion löst eine Ausnahme aus.

(Geerbt von IIterable)
GetFirst()

Ruft das erste Element dieser Auflistung ab.

(Geerbt von ISequencedCollection)
GetHashCode()

Gibt den Hashcodewert für diese Auflistung zurück.

(Geerbt von ICollection)
GetLast()

Ruft das letzte Element dieser Auflistung ab.

(Geerbt von ISequencedCollection)
Iterator()

Gibt einen Iterator über die Elemente in dieser Deque in der richtigen Reihenfolge zurück.

Offer(Object)

Fügt das angegebene Element in die Warteschlange ein, die durch diese Deque dargestellt wird (d. h. am Ende dieser Deque), wenn dies sofort möglich ist, ohne kapazitätseinschränkende Einschränkungen zu verletzen, bei Erfolg zurückzukehren true und false wenn zurzeit kein Speicherplatz verfügbar ist.

OfferFirst(Object)

Fügt das angegebene Element an der Vorderseite dieser Warteschlange ein, es sei denn, es würde Kapazitätsbeschränkungen verletzen.

OfferLast(Object)

Fügt das angegebene Element am Ende dieser Deque ein, es sei denn, es würde Kapazitätsbeschränkungen verletzen.

Peek()

Ruft den Kopf der Warteschlange ab, die durch diese Deque dargestellt wird (d. h. das erste Element dieser Deque), oder gibt zurück null , wenn diese Deque leer ist.

PeekFirst()

Ruft ab, entfernt jedoch nicht das erste Element dieser Deque oder gibt zurück null , wenn diese Deque leer ist.

PeekLast()

Ruft das letzte Element dieser Deque ab, entfernt sie jedoch nicht, oder gibt zurück null , wenn diese Deque leer ist.

Poll()

Ruft den Kopf der Warteschlange ab und entfernt sie, die durch diese Deque dargestellt wird (d. h. das erste Element dieser Deque), oder gibt zurück null , wenn diese Deque leer ist.

PollFirst()

Ruft das erste Element dieser Deque ab und entfernt es oder gibt zurück null , wenn diese Deque leer ist.

PollLast()

Ruft das letzte Element dieser Deque ab und entfernt es oder gibt zurück null , wenn diese Deque leer ist.

Pop()

Pops an element from the stack represented by this deque.

Push(Object)

Verschiebt ein Element auf den Stapel, der durch diese Deque dargestellt wird (d. h. an der Spitze dieser Deque), wenn es möglich ist, dies sofort zu tun, ohne Kapazitätsbeschränkungen zu verletzen, ein IllegalStateException , wenn zurzeit kein Platz verfügbar ist.

Remove()

Ruft den Kopf der Warteschlange ab und entfernt sie, die durch diese Deque dargestellt wird (also das erste Element dieser Deque).

Remove(Object)

Entfernt das erste Vorkommen des angegebenen Elements aus dieser Deque.

RemoveAll(ICollection)

Entfernt alle Elemente dieser Auflistung, die auch in der angegebenen Auflistung enthalten sind (optionaler Vorgang).

(Geerbt von ICollection)
RemoveFirst()

Ruft das erste Element dieser Deque ab und entfernt es.

RemoveFirstOccurrence(Object)

Entfernt das erste Vorkommen des angegebenen Elements aus dieser Deque.

RemoveIf(IPredicate)

Entfernt alle Elemente dieser Auflistung, die das angegebene Prädikat erfüllen.

(Geerbt von ICollection)
RemoveLast()

Ruft das letzte Element dieser Deque ab und entfernt es.

RemoveLastOccurrence(Object)

Entfernt das letzte Vorkommen des angegebenen Elements aus dieser Deque.

RetainAll(ICollection)

Behält nur die Elemente in dieser Auflistung bei, die in der angegebenen Auflistung enthalten sind (optionaler Vorgang).

(Geerbt von ICollection)
Reversed()

Gibt eine umgekehrt sortierte Ansicht dieser Auflistung zurück.

(Geerbt von ISequencedCollection)
SetJniIdentityHashCode(Int32)

Legen Sie den von JniIdentityHashCode.

(Geerbt von IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Eine lineare Auflistung, die das Einfügen und Entfernen von Elementen an beiden Enden unterstützt.

(Geerbt von IJavaPeerable)
SetPeerReference(JniObjectReference)

Legen Sie den von PeerReference.

(Geerbt von IJavaPeerable)
Size()

Gibt die Anzahl der Elemente in dieser Deque zurück.

Spliterator()

Erstellt eine Spliterator über den hier Iterablebeschriebenen Elemente.

(Geerbt von IIterable)
ToArray()

Gibt ein Array zurück, das alle Elemente in dieser Auflistung enthält.

(Geerbt von ICollection)
ToArray(IIntFunction)

Gibt ein Array zurück, das alle Elemente in dieser Auflistung enthält, wobei die bereitgestellte generator Funktion verwendet wird, um das zurückgegebene Array zuzuweisen.

(Geerbt von ICollection)
ToArray(Object[])

Gibt ein Array zurück, das alle Elemente in dieser Auflistung enthält; Der Laufzeittyp des zurückgegebenen Arrays ist die des angegebenen Arrays.

(Geerbt von ICollection)
UnregisterFromRuntime()

Heben Sie die Registrierung dieser Instanz auf, damit die Laufzeit sie nicht aus zukünftigen Java.Interop.JniRuntime+JniValueManager.PeekValue Aufrufen zurückgibt.

(Geerbt von IJavaPeerable)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IIterable.Spliterator()

Erstellt eine Spliterator Übergabe der Elemente in dieser Auflistung.

(Geerbt von ICollection)
ISequencedCollection.Reversed()

Soll hinzugefügt werden

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Eine lineare Auflistung, die das Einfügen und Entfernen von Elementen an beiden Enden unterstützt.

ToEnumerable(IIterable)

Eine lineare Auflistung, die das Einfügen und Entfernen von Elementen an beiden Enden unterstützt.

ToEnumerable<T>(IIterable)

Eine lineare Auflistung, die das Einfügen und Entfernen von Elementen an beiden Enden unterstützt.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: