Wie kann ich den letzten Wert einer ArrayList erhalten?
Antworten
Zu viele Anzeigen?Das Folgende ist Teil der List
Schnittstelle (die ArrayList implementiert):
E e = list.get(list.size() - 1);
E
ist der Elementtyp. Wenn die Liste leer ist, get
wirft einen IndexOutOfBoundsException
. Sie können die gesamte API-Dokumentation finden aquí .
Es gibt keinen eleganten Weg in Vanilla Java.
Google Guava
El Google Guava Bibliothek ist großartig - besuchen Sie deren Iterables
Klasse . Diese Methode löst eine NoSuchElementException
wenn die Liste leer ist, im Gegensatz zu einer IndexOutOfBoundsException
wie bei der typischen size()-1
Ansatz - ich finde eine NoSuchElementException
viel schöner, oder die Möglichkeit, eine Voreinstellung festzulegen:
lastElement = Iterables.getLast(iterableList);
Sie können auch einen Standardwert angeben, wenn die Liste leer ist, anstatt eine Ausnahme zu machen:
lastElement = Iterables.getLast(iterableList, null);
oder, wenn Sie Optionen verwenden:
lastElementRaw = Iterables.getLast(iterableList, null);
lastElement = (lastElementRaw == null) ? Option.none() : Option.some(lastElementRaw);
Ich verwende die Klasse micro-util, um das letzte (und erste) Element der Liste zu erhalten:
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;
}
}
Etwas mehr Flexibilität:
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();
}
}
- See previous answers
- Weitere Antworten anzeigen