214 votos

Cómo obtener el último valor de un ArrayList

¿Cómo puedo obtener el último valor de un ArrayList?

No conozco el último índice del ArrayList.

258voto

Johannes Schaub - litb Puntos 256113

Lo siguiente es parte de la List (que implementa ArrayList):

E e = list.get(list.size() - 1);

E es el tipo de elemento. Si la lista está vacía, get lanza un IndexOutOfBoundsException . Puede encontrar toda la documentación de la API aquí .

129voto

Henrik Paul Puntos 22787

Esto debería servir:

if (arrayList != null && !arrayList.isEmpty()) {
  T item = arrayList.get(arrayList.size()-1);
}

82voto

Antony Stubbs Puntos 4236

No hay una manera elegante en Java vainilla.

Google Guava

El Google Guava biblioteca es genial, echa un vistazo a su Iterables clase . Este método lanzará un NoSuchElementException si la lista está vacía, a diferencia de un IndexOutOfBoundsException como con el típico size()-1 enfoque - encuentro un NoSuchElementException mucho más agradable, o la posibilidad de especificar un valor por defecto:

lastElement = Iterables.getLast(iterableList);

También puede proporcionar un valor por defecto si la lista está vacía, en lugar de una excepción:

lastElement = Iterables.getLast(iterableList, null);

o, si estás usando Opciones:

lastElementRaw = Iterables.getLast(iterableList, null);
lastElement = (lastElementRaw == null) ? Option.none() : Option.some(lastElementRaw);

7voto

Ken Paul Puntos 2398

El size() devuelve el número de elementos de la ArrayList. Los valores de los índices de los elementos son 0 a través de (size()-1) , por lo que se utilizaría myArrayList.get(myArrayList.size()-1) para recuperar el último elemento.

-3voto

dae Puntos 1

Si modifica su lista, utilice [listIterator()](http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#listIterator()) e iterar desde el último índice (es decir size()-1 respectivamente). Si vuelve a fallar, compruebe la estructura de su lista.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X