2017-11-21 4 views
-1

Wenn ein zusammengesetzter Typ die Schnittstelle RandomAccess implementiert, können wir nach dem Zufallsprinzip auf die Elemente eines Objekts vom zusammengesetzten Typ zugreifen.Was sind für den sequentiellen Zugriff, wie RandomAccess-Schnittstelle für den wahlfreien Zugriff?

Was sind für den sequentiellen Zugriff, wie RandomAccess Schnittstelle für den wahlfreien Zugriff?

Danke.

+0

Iterable kann dafür verwendet werden, obwohl es möglicherweise nicht konzeptionell 100% passt .. https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html – Vasan

Antwort

3

Beachten Sie, dass diese Antwort auf der Tatsache beruht, dass RandomAccess ein für Lists bedeutete Marker-Schnittstelle ist (es sagt so in der javadoc), nicht Ihre benutzerdefinierten Composite-Objekte.

Es gibt keine äquivalente Markerschnittstelle für den sequentiellen Zugriff. Es wird durch das Fehlen von RandomAccess angedeutet.

RandomAccess ist eine Markierungsschnittstelle, die ohne Leistung statt Iterator sicher verwendet für die Umsetzung ein List eine effiziente hat (das heißt O(1)) List.get(i), und es kann sein Strafen gibt an, dass.

Beachten Sie, dass die Schnittstelle für Lists gedacht ist, obwohl Sie nichts daran hindert, andere Klassen damit zu markieren (wie Sie es anscheinend tun). Es wird einfach nicht sehr nützlich sein, da diese anderen Klassen keine spezielle Behandlung haben, die List & RandomAccess qualifizierte Klassen machen (Beispiele siehe Collections und schauen Sie sich alle Orte an, an denen instanceof RandomAccess verwendet wird).

1

Iterable für nur vorwärts sequenziellen Zugriff.

+0

Danke. Was sind für rückwärts nur sequenziellen Zugriff, und was sind für beide Vorwärts-und Rückwärtszugriff sequenziell? – Ben

+0

@Ben gibt es keine. Auch 'Iterable' garantiert nichts. Es stellt die 'iterator()' Methode zur Verfügung, die nichts über die Reihenfolge oder Richtung der Iteration aussagt. – Kayaman

+0

@Kayaman Ist 'ListIterator' für den sequenziellen Vorwärts- und Rückwärtszugriff? – Ben

Verwandte Themen