package edu.berkeley.nlp.util;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: aria42
* Date: Nov 15, 2008
*/
public class Iterables {
public static <S,T> Iterable<Pair<S,T>> zip(final Iterable<S> s, final Iterable<T> t) {
return new Iterable<Pair<S,T>>() {
public Iterator<Pair<S, T>> iterator() {
return Iterators.zip(s.iterator(),t.iterator());
}
};
}
public static <S> Iterable<S> concat(final Iterable<S>...iterables) {
return new ConcatenationIterable<S>(iterables);
}
public static <T> int size(Iterable<T> iterable) {
if (Collection.class.isInstance(iterable)) {
return ((Collection) iterable).size();
}
int count = 0;
for (T t : iterable) {
count++;
}
return count;
}
public static <T> List<T> fillList(Iterable<T> iterable) {
return Iterators.fillList(iterable.iterator());
}
public static <T> boolean isEmpty(Iterable<T> iterable) {
return Iterables.size(iterable) == 0;
}
}