Un Collection
no es necesariamente un conjunto ordenado de elementos por lo que no puede haber un concepto de elemento "último". Si quiere algo que está ordenado, puede usar un SortedSet
que tiene un método last()
. O puede utilizar un List
y llamar a mylist.get(mylist.size()-1);
Si realmente necesita el último elemento que se debe utilizar un List
o una SortedSet
. Pero si todo lo que tiene es un Collection
y realmente, realmente, realmente necesita el último elemento, puede usar toArray()
o puede usar un Iterator
e iterar hasta el final de la lista.
Por ejemplo:
public Object getLastElement(final Collection c) {
final Iterator itr = c.iterator();
Object lastElement = itr.next();
while(itr.hasNext()) {
lastElement = itr.next();
}
return lastElement;
}
por eso es necesario para construir la lista utilizando la colección en primer lugar. En cuanto al rendimiento, ¿será diferente de la solución de Array? – tom
Si todo lo que está haciendo es obtener el último elemento, es más eficiente usar toArray() que compilar un ArrayList – mwk
La pregunta menciona que es una colección, no una lista. Ahora, para convertirlo en una lista solo para tener el último elemento es una mala solución y puede llevar a cuellos de botella de rendimiento si tiene grandes colecciones. Utilice el método Iterable.getLast de Guava en su lugar. – javadev