1

Java用のPythonに相当するものはありitertools.chainますか(サードパーティライブラリありまたはなし)?

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コレクションには次のメソッドがありますLazyIterate

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

LazyIterable次の方法を使用して、他の反復可能オブジェクトと連結することもできます。

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

注:私はEclipseコレクションのコミッターです。

于 2012-12-17T19:58:50.990 に答える
1

がある:com.google.common.collect.Iterables#concat()

于 2012-12-14T11:06:49.413 に答える