是否有相当于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("...");
}
}
}
}
答案 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)