我们可以使用像数组索引这样的索引来访问List <T>吗?

use*_*949 25 java

我想知道我们是否可以使用索引来访问List

例如:

List<Integer> list; 

list[5]     //blah....
Run Code Online (Sandbox Code Playgroud)

jos*_*efx 47

既然[]是运算符而java不支持运算符重载,则不能将它与List一起使用.相反,你必须使用set(int index, T value)get(int index)方法,这可能是冗长的,但提供完全相同的功能.


asg*_*sgs 27

List.get(int) 允许您使用索引访问元素.


npi*_*nti 6

您可以通过使用get方法使用索引访问List元素:

得到

public Object get(int index)

返回此列表中指定位置的元素.

参数:index - 要返回的元素的索引.

返回:此列表中指定位置的元素.

抛出:IndexOutOfBoundsException - 如果索引超出范围(index <0 || index> = size()).

请记住,列表中的索引是基于0的.


Hja*_*mar 5

有很多很好的答案在这里,但我只是想指出的是,list.get(i)相同list[i]仅在列表与数组(即ArrayList中)来实现.如果它是LinkedList,你实际上并不是在索引get,而是迭代.

因此,如果您使用get()接口类型List,特别是在循环中,您应该检查它是如何实现的,因为get()ArrayList是O(1),而get()LinkedList是O(n)(慢得多).