Мені цікаво, якщо ми можемо використовувати індекс для доступу до списку
Наприклад:
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, ви знайдете єдиний доступ до масивів і списків, але обидва з ()
круглі дужки.