1

是否有等效itertools.chain于 Java 的 python(带有或不带有第三​​方库)?

itertools.chain([1, 2, 3], [4, 5, 6]) # -> [1, 2, 3, 4, 5, 6]

像这样的东西:

new Iterable<E> {
       public Iterator<E> iterator() {
           return new Iterator<E>() {
               Iterator<E> i1 = list1.iterator();
               Iterator<E> i2 = list2.iterator();
               public boolean hasNext() {
                   return i1.hasNext() || i2.hasNext();
               }
               public E next() {
                   if(i1.hasNext()) {
                       return i1.next();
                   } else if(i2.hasNext()) {
                       return i2.next();
                   } else {
                       throw new NoSuchElementException("Lists exhausted");
                   }
               }
               public void remove() {
                   throw new UnsupportedOperationException("...");
               }
           }
       }
   }
4

2 回答 2

2

Eclipse CollectionsLazyIterate.

public static <T> LazyIterable<T> concatenate(Iterable<T>... iterables)

AnyLazyIterable也可以使用以下方法将自身与另一个可迭代对象连接起来。

LazyIterable<T> concatenate(Iterable<T> iterable)

注意:我是 Eclipse Collections 的提交者。

于 2012-12-17T19:58:50.990 回答
1

有:com.google.common.collect.Iterables#concat()

于 2012-12-14T11:06:49.413 回答