792 Stimmen

Wie man den letzten Wert einer ArrayList erhält

Wie kann ich den letzten Wert einer ArrayList erhalten?

864voto

Johannes Schaub - litb Punkte 479831

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í .

256voto

Antony Stubbs Punkte 12453

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);

201voto

Henrik Paul Punkte 65301

Das sollte genügen:

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

32voto

user11153 Punkte 7691

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();
  }
}

15voto

Ken Paul Punkte 5597

El size() Methode gibt die Anzahl der Elemente in der ArrayList zurück. Die Indexwerte der Elemente sind 0 über (size()-1) Sie würden also verwenden myArrayList.get(myArrayList.size()-1) um das letzte Element abzurufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X