Python中的Python` itertools.chain`等同于什么?

时间:2012-12-14 10:55:33

标签: java python collections iteration combinations

是否有相当于python的itertools.chain用于Java(第三方库或没有第三方库)?

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("...");
               }
           }
       }
   }

2 个答案:

答案 0 :(得分:2)

Eclipse Collections(以前称为GS Collections)在LazyIterate上有以下方法。

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

任何LazyIterable都可以使用以下方法将自身与另一个迭代连接起来。

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

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

答案 1 :(得分:1)