/ / Чи можемо ми використовувати індекс, як індекс масиву для доступу до списку <T>? - java

Чи можемо ми використовувати index як індекс масиву для доступу до списку <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 || index> = size ()).

Пам'ятайте, що індекс у списках становить 0.


5 за відповідь № 4

Тут багато хороших відповідей, але я просто хочу це відзначити list.get(i) такий же, як і list[i] тільки якщо список здійснюється за допомогою масиву (тобто ArrayList). Якщо це LinkedList, ви зовсім не індексируете get, а скоріше повторюється.

Так що якщо ви використовуєте get() з типом інтерфейсу List, особливо в циклі, ви повинні перевірити, як він реалізується, як get() з ArrayList є O (1) в той час як get() з LinkedList є O (n) (набагато повільніше).


3 для відповіді № 5

альтернатива використанню get(int) є створення масиву за допомогою toArray()

List<T> list = ...

Object[] array = list.toArray();

якщо T є відомий, toArray(T[]) може бути використаний для повернення T[] замість Object[].
Використання toArray є лише значущим, а не get, якщо масив дійсно потрібен (багато доступів).


2 для відповіді № 6

Ні, ви не можете це зробити в Java.


2 для відповіді № 7

Ні, ви обмежені List.get (i).

Кронштейни [] визначаються на рівні синтаксису, а не як ім'я методу, тому ви не можете їх перевизначити. Вони використовуються виключно для масивів.

Якщо ви хочете перейти до Scala, більш сучасної мови для JVM, ви знайдете єдиний доступ до масивів і списків, але обидва з () круглі дужки.