All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.ozimov.cirneco.hamcrest.iterable.utils.IterableUtils Maven / Gradle / Ivy

package it.ozimov.cirneco.hamcrest.iterable.utils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;

import static com.google.common.base.Preconditions.checkNotNull;

public class IterableUtils {

    private IterableUtils() {
    }

    public static  boolean isEmpty(final Iterable iterable) {
        checkNotNull(iterable);

        return !iterable.iterator().hasNext();
    }

    public static  List listCopy(final Iterable iterable) {
        checkNotNull(iterable);

        final List list = new ArrayList<>();
        for (final K k : iterable) {
            list.add(k);
        }
        return list;
    }

    public static  List sortedListCopy(final Iterable iterable) {
        checkNotNull(iterable);

        final List list = listCopy(iterable);
        Collections.sort(list);
        return list;
    }

    public static  List sortedReversedListCopy(final Iterable iterable) {
        checkNotNull(iterable);

        final List list = sortedListCopy(iterable);
        Collections.reverse(list);
        return list;
    }

    public static  List sortedListCopy(final Iterable iterable, final Comparator comparator) {
        checkNotNull(iterable);
        checkNotNull(comparator);

        final List list = listCopy(iterable);
        Collections.sort(list, comparator);
        return list;
    }

    public static  List sortedReversedListCopy(final Iterable iterable, final Comparator comparator) {
        checkNotNull(iterable);
        checkNotNull(comparator);

        final List list = sortedListCopy(iterable, comparator);
        Collections.reverse(list);
        return list;
    }

    public static  int size(final Iterable iterable) {
        checkNotNull(iterable);

        if (iterable instanceof Collection) {
            return ((Collection) iterable).size();
        } else {
            int size = 0;
            final Iterator iterator = iterable.iterator();

            while (iterator.hasNext()) {
                ++size;
                iterator.next();
            }
            return size;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy