/ / Czy możemy użyć indeksu indeksów podobnych do listy <T>? - java

Czy możemy użyć indeksu indeksów podobnych do listy <T>? - java

Zastanawiam się, czy możemy użyć indeksu do dostępu do listy

Na przykład:

List<Integer> list;

list[5]     //blah....

Odpowiedzi:

39 dla odpowiedzi nr 1

Od [] jest operatorem, a java nie obsługuje przeciążania operatora, którego nie można używać z listą, a zamiast tego trzeba użyć set(int index, T value) i get(int index) metody, które mogą być pełne, ale zapewniają dokładnie taką samą funkcjonalność.


22 dla odpowiedzi nr 2

List.get(int) umożliwia dostęp do elementów za pomocą indeksu.


6 dla odpowiedzi nr 3

Możesz uzyskać dostęp do elementów listy za pomocą ich indeksu przy użyciu otrzymać metoda:

otrzymać

public Object get (indeks int)

Zwroty element w określonej pozycji na tej liście.

Parametry: indeks - indeks elementu do zwrócenia.

Zwroty: element w określonej pozycji na tej liście.

Zgłasza: IndexOutOfBoundsException - jeśli indeks jest poza zakresem (indeks <0 || index> = size ()).

Należy pamiętać, że indeks na liście ma wartość 0.


5 dla odpowiedzi № 4

Jest tu wiele dobrych odpowiedzi, ale chcę to podkreślić list.get(i) jest taki sam jak list[i] tylko jeśli lista jest zaimplementowana z tablicą (np. ArrayList). Jeśli jest to LinkedList, to naprawdę nie indeksujesz get, ale raczej iteracyjne.

Więc jeśli używasz get() z listą typu interfejsu, szczególnie w pętli, powinieneś sprawdzić, w jaki sposób jest ona zaimplementowana, jako get() z ArrayList jest O (1), podczas gdy get() z LinkedList to O (n) (znacznie wolniej).


3 dla odpowiedzi № 5

alternatywa dla używania get(int) jest utworzenie tablicy za pomocą toArray()

List<T> list = ...

Object[] array = list.toArray();

jeśli T jest znany, toArray(T[]) może być użyty do powrotu T[] zamiast Object[].
Sposób użycia toArray ma znaczenie tylko zamiast get, jeśli tablica jest naprawdę potrzebna (wiele dostępów).


2 dla odpowiedzi № 6

Nie, nie możesz tego zrobić w Javie.


2 dla odpowiedzi № 7

Nie, jesteś ograniczony do List.get (i).

Nawiasy [] są zdefiniowane na poziomie składni, a nie jako nazwa-metody, więc nie można ich zastąpić, są one używane wyłącznie dla tablic.

Jeśli chcesz przenieść się do Scala, bardziej nowoczesnego języka JVM, znajdziesz ujednolicony dostęp do tablic i list, ale oba z () zdanie wtrącone.