Returns the last element of the collection. - Android java.util

Android examples for java.util:Collection Element

Description

Returns the last element of the collection.

Demo Code

/*// w  w w  .  j  a  va2 s  .com
 * DuDe - The Duplicate Detection Toolkit
 * 
 * Copyright (C) 2010  Hasso-Plattner-Institut f?r Softwaresystemtechnik GmbH,
 *                     Potsdam, Germany 
 *
 * This file is part of DuDe.
 * 
 * DuDe is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * DuDe is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with DuDe.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */
//package com.book2s;
import java.util.ArrayList;
import java.util.Deque;
import java.util.Iterator;
import java.util.List;

public class Main {
    public static void main(String[] argv) {
        List list = java.util.Arrays.asList("asdf", "book2s.com");
        System.out.println(last(list));
    }

    /**
     * Returns the last element of the collection.
     * 
     * @param <T>
     *            the element type
     * @param list
     *            the collection
     * @return the last element or null if the list is empty
     */
    @SuppressWarnings("unchecked")
    public static <T> T last(List<T> list) {
        if (list instanceof Deque<?>)
            return ((Deque<T>) list).getLast();
        return list.isEmpty() ? null : list.get(list.size() - 1);
    }

    /**
     * Returns the last element of the collection.
     * 
     * @param <T>
     *            the element type
     * @param iterable
     *            the collection
     * @return the last element or null if the list is empty
     */
    public static <T> T last(Iterable<T> iterable) {
        if (iterable instanceof Deque<?>)
            return ((Deque<T>) iterable).getLast();
        if (iterable instanceof List<?>) {
            List<T> list = (List<T>) iterable;
            return list.isEmpty() ? null : list.get(list.size() - 1);
        }
        Iterator<T> iterator = iterable.iterator();
        T last = null;
        while (iterator.hasNext())
            last = iterator.next();
        return last;
    }

    /**
     * Materializes the elements of the given {@link Iterator} into a {@link List}.
     * 
     * @param <T>
     *            the element type
     * @param iterator
     *            the {@link Iterator} to materialize
     * @return the {@link List} containing the materialized elements.
     */
    public static <T> List<T> asList(Iterator<T> iterator) {
        ArrayList<T> list = new ArrayList<T>();
        while (iterator.hasNext())
            list.add(iterator.next());
        return list;
    }
}

Related Tutorials