/ / Можем ли да използваме индекс като матричен индекс за достъп до списък <T>? - java

Можем ли да използваме индекс като матричен индекс за достъп до списък <T>? - java

Чудя се дали можем да използваме индекса за достъп до списъка

Например:

List<Integer> list;

list[5]     //blah....

Отговори:

39 за отговор № 1

От [] е оператор и java не поддържа претоварване от оператора, не можете да го използвате със списъка. Вместо това трябва да използвате set(int index, T value) и get(int index) методи, които могат да бъдат подробни, но да предоставят точно същата функционалност.


22 за отговор № 2

List.get(int) ви дава достъп до елементи, използващи индекса.


6 за отговор № 3

Можете да осъществявате достъп до елементите от списъка чрез своя индекс чрез използването на получавам метод:

получавам

public Object get (int index)

Се завръща елемента в определената позиция в този списък.

Параметри: индекс - индекс на елемента да се върне.

Се завръща: елемента в определената позиция в този списък.

Хвърля: IndexOutOfBoundsException - ако индексът е извън обхвата (индекс <0 || индекс> = размер ()).

Имайте предвид, че индексът в списъците е базиран на 0.


5 за отговор № 4

Има много добри отговори тук, но просто искам да подчертая това list.get(i) е същото като list[i] само ако списъкът се изпълнява с масив (т.е. ArrayList). Ако това е LinkedList, с който не индексирате get, а по-скоро итерация.

Така че, ако използвате get() с интерфейса тип списък, особено в един цикъл, трябва да проверите как се прилага, тъй като get() с ArrayList е O (1), докато get() с LinkedList е O (n) (много по-бавно).


3 за отговор № 5

алтернатива на използването get(int) е да създадете масив с помощта toArray()

List<T> list = ...

Object[] array = list.toArray();

ако Т е известен, toArray(T[]) може да се използва за връщане T[] вместо Object[].
Използването на toArray има смисъл само вместо get, ако наистина е необходим масив (много достъп).


2 за отговор № 6

Не, не можете да направите това в Java.


2 за отговор № 7

Не, вие сте ограничени List.get (i).

В скоби [] са дефинирани на ниво синтаксис, а не като име на метода, така че да не можете да ги замените. Използват се само за масиви.

Ако искате да мигрирате към Scala, по-съвременен език за JVM, ще намерите единен достъп до масиви и списъци, но и с двете () скоби.