Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 * DuDe - The Duplicate Detection Toolkit
 * 
 * Copyright (C) 2010  Hasso-Plattner-Institut fr 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/>.
 * 
 */

import java.util.Deque;
import java.util.Iterator;
import java.util.List;

public class Main {
    /**
     * Returns the first element of the collection.
     * 
     * @param <T>
     *            the element type
     * @param list
     *            the collection
     * @return the first element or null if the list is empty
     */
    @SuppressWarnings("unchecked")
    public static <T> T first(List<T> list) {
        if (list instanceof Deque<?>)
            return ((Deque<T>) list).getFirst();
        return list.isEmpty() ? null : list.get(0);
    }

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