在同一“for”循环中循环访问多个集合?
我想知道是否有这样一种方法可以迭代多个集合,并在java中的每个循环进行扩展。
所以像这样:
for (Object element : collection1, collection2, ....)
// do something ...
谢谢
我想知道是否有这样一种方法可以迭代多个集合,并在java中的每个循环进行扩展。
所以像这样:
for (Object element : collection1, collection2, ....)
// do something ...
谢谢
你可以用Guava的Iterables.concat()做到这一点
:
for (Foo element : Iterables.concat(collection1, collection2)) {
foo.frob();
}
使用普通的Java 8并且没有任何其他库:
public static <T> Iterable<T> compositeIterable(Collection<? extends T>... collections)
{
Stream<T> compositeStream = Stream.of(collections).flatMap(c-> c.stream());
return compositeStream::iterator;
}
然后,您可以将其用作:
for (Foo element : MyClass.compositeIterable(collection1, collection2)) {
foo.frob();
}