Me pregunto si podemos utilizar el índice para acceder a la lista¿Podemos usar índice como índice de matriz para acceder a la lista <T>?
Por ejemplo:
List<Integer> list;
list[5] //blah....
Me pregunto si podemos utilizar el índice para acceder a la lista¿Podemos usar índice como índice de matriz para acceder a la lista <T>?
Por ejemplo:
List<Integer> list;
list[5] //blah....
Dado que []
es un operador y Java no admite la sobrecarga del operador, no puede usarlo con la Lista. En su lugar, debe utilizar los métodos set(int index, T value)
y get(int index)
, que pueden ser detallados pero proporcionan exactamente la misma funcionalidad.
List.get(int)
le permite acceder a los elementos utilizando el índice.
No, no puedes hacer esto en Java.
@Downvoter Patrick estaba en lo cierto al decir que 'list [5]' no es posible en Java, aunque no mencionó ninguna alternativa. – asgs
@asgs - No soy el "Bajista", pero la respuesta no es útil, en realidad es incorrecta. Sí, "podemos usar el índice para acceder a la Lista" usando 'list.get (int)' o, si realmente * needed *, 'list.toArray() [5]' [:-) –
@Carlos no sabía nada 'toArray()'. Gracias. – asgs
Se puede acceder a los elementos de lista usando su índice a través del uso de la get método:
obtener
objeto Get pública (int index)
devoluciones el elemento en la posición especificada en esta lista.
Parámetros: índice - índice del elemento a devolver.
Devuelve: el elemento en la posición especificada en esta lista.
Lanza: IndexOutOfBoundsException - si el índice está fuera de rango (índice < 0 || index> = size()).
Tenga en cuenta que el índice en Listas está basado en 0.
No, usted está restringido a List.get (i)
.
Los corchetes []
se definen en el nivel de sintaxis, no como nombre-método, por lo que no puede anularlos. Se usan solo para arreglos exclusivamente.
Si desea migrar a Scala, un lenguaje más moderno para la JVM, encontrará un acceso unificado a matrices y listas, pero ambos con ()
paréntesis.
Aquí hay muchas buenas respuestas, pero solo quiero señalar que list.get(i)
es lo mismo que list[i]
solo si la lista se implementa con una matriz (es decir, ArrayList). Si es una LinkedList, realmente no está indexando con get
, sino iterando.
tanto, si utiliza get()
con la lista de tipo de interfaz, especialmente en un bucle, debe comprobar cómo se implementa, como get()
con ArrayList es O (1), mientras que get()
con LinkedList es O (n) (mucho más lento).
una alternativa al uso get(int)
es crear una matriz usando toArray()
List<T> list = ...
Object[] array = list.toArray();
si T es conocidos, toArray(T[])
se puede utilizar para volver T[]
en lugar de Object[]
.
El uso de toArray
solo tiene sentido, en lugar de get
, si realmente se necesita una matriz (muchos accesos).
Hombre, te amo <3. – Kadaj