2012-12-14 139 views
1

是否有相當於python的itertools.chain的Java(與第三方庫或沒有)?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

Eclipse Collections(前身爲GS集合)對LazyIterate下面的方法。

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

任何LazyIterable可以與另一個迭代,以及使用下面的方法本身串聯。

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

注意:我是Eclipse集合的提交者。