/ / Können wir indexähnlichen Array-Index verwenden, um auf List <T> zuzugreifen? - Java

Können wir einen indexähnlichen Array-Index verwenden, um auf List <T> zuzugreifen? - Java

Ich frage mich, ob wir den Index verwenden können, um auf die Liste zuzugreifen

Beispielsweise:

List<Integer> list;

list[5]     //blah....

Antworten:

39 für die Antwort № 1

Schon seit [] ist ein Operator und Java unterstützt nicht das Überladen von Operatoren. Sie können es nicht mit List verwenden. Stattdessen müssen Sie das set(int index, T value) und get(int index) Methoden, die zwar ausführlich sind, aber genau die gleiche Funktionalität bieten.


22 für die Antwort № 2

List.get(int) ermöglicht den Zugriff auf Elemente mit dem Index.


6 für die Antwort № 3

Sie können auf Listenelemente zugreifen, indem Sie ihren Index mithilfe von bekommen Methode:

bekommen

Öffentliches Objekt get (int index)

Kehrt zurück das Element an der angegebenen Position in dieser Liste.

Parameter: Index - Index des zurückzugebenden Elements.

Kehrt zurück: das Element an der angegebenen Position in dieser Liste.

Wirft: IndexOutOfBoundsException - wenn der Index liegt außerhalb des Bereichs (Index <0 || Index> = Größe ()).

Beachten Sie, dass der Index in Listen 0 basiert.


5 für die Antwort № 4

Es gibt viele gute Antworten hier, aber ich möchte nur darauf hinweisen list.get(i) ist das gleiche wie list[i] nur wenn die Liste mit einem Array (d. h. ArrayList) implementiert ist. Wenn es sich um eine LinkedList handelt, mit der Sie nicht wirklich indexieren get, sondern iterierend.

Also wenn du benutzt get() mit dem Schnittstellentyp List, insbesondere in einer Schleife, sollten Sie überprüfen, wie es implementiert ist, wie get() mit ArrayList ist O (1), während get() mit LinkedList ist O (n) (viel langsamer).


3 für die Antwort № 5

eine Alternative zur Verwendung get(int) erstellt ein Array mit toArray()

List<T> list = ...

Object[] array = list.toArray();

wenn T ist bekannt, toArray(T[]) kann verwendet werden, um zurückzukehren T[] Anstatt von Object[].
Die Verwendung von toArray ist nur sinnvoll, statt get, wenn ein Array wirklich benötigt wird (viele Zugriffe).


2 für die Antwort № 6

Nein, das können Sie in Java nicht machen.


2 für die Antwort № 7

Nein, du bist beschränkt auf List.get (i).

Die Klammern [] Sie sind auf Syntaxebene definiert, nicht als Methodenname, daher können Sie sie nicht überschreiben. Sie werden nur für Arrays ausschließlich verwendet.

Wenn Sie zu Scala, einer moderneren Sprache für die JVM, migrieren möchten, finden Sie einen einheitlichen Zugang zu Arrays und Listen, aber beide mit () Klammern.