obtener objetos metodos llenar imprimir enteros elemento como clase java arraylist

java - objetos - Cómo obtener el último valor de un ArrayList



metodos arraylist java (14)

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

No sé el último índice de la ArrayList.


¿Qué tal esto? En algún lugar de tu clase ...

List<E> list = new ArrayList<E>(); private int i = -1; public void addObjToList(E elt){ i++; list.add(elt); } public E getObjFromList(){ if(i == -1){ //If list is empty handle the way you would like to... I am returning a null object return null; // or throw an exception } E object = list.get(i); list.remove(i); //Optional - makes list work like a stack i--; //Optional - makes list work like a stack return object; }


El último elemento de la lista es list.size() - 1 . La colección está respaldada por una matriz y las matrices comienzan en el índice 0.

Entonces el elemento 1 en la lista está en el índice 0 en la matriz

El elemento 2 en la lista está en el índice 1 en la matriz

El elemento 3 en la lista está en el índice 2 en la matriz

y así..


El método size() devuelve el número de elementos en el ArrayList. Los valores de índice de los elementos van de 0 a (size()-1) , por lo que usaría myArrayList.get(myArrayList.size()-1) para recuperar el último elemento.


Lo siguiente es parte de la interfaz de 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 una IndexOutOfBoundsException . Puedes encontrar toda la documentación de la API here .


No hay una forma elegante en Java vainilla.

Guayaba de google

La biblioteca de Google Guava es excelente: echa un vistazo a su clase de Iterables . Este método arrojará una NoSuchElementException si la lista está vacía, a diferencia de una IndexOutOfBoundsException , como IndexOutOfBoundsException con el enfoque típico de size()-1 : encuentro una NoSuchElementException mucho más agradable o la capacidad de especificar un valor predeterminado:

lastElement = Iterables.getLast(iterableList);

También puede proporcionar un valor predeterminado 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);


Si modifica su lista, use listIterator() e iteree desde el último índice (que es size()-1 respectivamente). Si vuelves a fallar, revisa la estructura de tu lista.


Si puede, cambie la ArrayList por una ArrayDeque , que tiene métodos convenientes como removeLast .


Si utiliza una lista enlazada, puede acceder al primer elemento y al último con solo getFirst() y getLast() (si desea una forma más limpia que size () -1 y get (0))

Implementación

Declarar una lista enlazada

int lastValue = arrList.get(arrList.size()-1);

Estos son los métodos que puede utilizar para obtener lo que quiere, en este caso, estamos hablando de los elementos PRIMERO y ÚLTIMO de una lista.

List<E> list = new ArrayList<E>(); private int i = -1; public void addObjToList(E elt){ i++; list.add(elt); } public E getObjFromList(){ if(i == -1){ //If list is empty handle the way you would like to... I am returning a null object return null; // or throw an exception } E object = list.get(i); list.remove(i); //Optional - makes list work like a stack i--; //Optional - makes list work like a stack return object; }

Entonces, puedes usar

mLinkedList.getLast();

para obtener el último elemento de la lista.


Todo lo que necesita hacer es usar size () para obtener el último valor del Arraylist. Por ej. Si tiene un ArrayList de enteros, entonces para obtener el último valor tendrá que

int lastValue = arrList.get(arrList.size()-1);

Recuerde, se puede acceder a los elementos de un Arraylist utilizando valores de índice. Por lo tanto, ArrayLists se utilizan generalmente para buscar elementos.


Usando lambdas:

Function<ArrayList<T>, T> getLast = a -> a.get(a.size() - 1);


Utilizo la clase micro-util para obtener el último (y primer) elemento de la lista:

public final class Lists { private Lists() { } public static <T> T getFirst(List<T> list) { return list != null && !list.isEmpty() ? list.get(0) : null; } public static <T> T getLast(List<T> list) { return list != null && !list.isEmpty() ? list.get(list.size() - 1) : null; } }

Un poco más flexible:

import java.util.List; /** * Convenience class that provides a clearer API for obtaining list elements. */ public final class Lists { private Lists() { } /** * Returns the first item in the given list, or null if not found. * * @param <T> The generic list type. * @param list The list that may have a first item. * * @return null if the list is null or there is no first item. */ public static <T> T getFirst( final List<T> list ) { return getFirst( list, null ); } /** * Returns the last item in the given list, or null if not found. * * @param <T> The generic list type. * @param list The list that may have a last item. * * @return null if the list is null or there is no last item. */ public static <T> T getLast( final List<T> list ) { return getLast( list, null ); } /** * Returns the first item in the given list, or t if not found. * * @param <T> The generic list type. * @param list The list that may have a first item. * @param t The default return value. * * @return null if the list is null or there is no first item. */ public static <T> T getFirst( final List<T> list, final T t ) { return isEmpty( list ) ? t : list.get( 0 ); } /** * Returns the last item in the given list, or t if not found. * * @param <T> The generic list type. * @param list The list that may have a last item. * @param t The default return value. * * @return null if the list is null or there is no last item. */ public static <T> T getLast( final List<T> list, final T t ) { return isEmpty( list ) ? t : list.get( list.size() - 1 ); } /** * Returns true if the given list is null or empty. * * @param <T> The generic list type. * @param list The list that has a last item. * * @return true The list is empty. */ public static <T> boolean isEmpty( final List<T> list ) { return list == null || list.isEmpty(); } }


esto debería hacerlo:

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


las matrices almacenan su tamaño en una variable local llamada ''longitud''. Dada una matriz llamada "a", podría usar lo siguiente para hacer referencia al último índice sin conocer el valor del índice

a [a.length-1]

para asignar un valor de 5 a este último índice, usaría:

a [a.length-1] = 5;


Let ArrayList is myList public void getLastValue(List myList){ // Check ArrayList is null or Empty if(myList == null || myList.isEmpty()){ return; } // check size of arrayList int size = myList.size(); // Since get method of Arraylist throws IndexOutOfBoundsException if index >= size of arrayList. And in arraylist item inserts from 0th index. //So please take care that last index will be (size of arrayList - 1) System.out.print("last value := "+myList.get(size-1)); }