See Guava Iterables