Ответ 1
Вы можете сделать именно это с помощью Guava Iterables.concat()
:
for (Foo element : Iterables.concat(collection1, collection2)) {
foo.frob();
}
Интересно, существует ли такой способ итерации через несколько коллекций с расширенным для каждого цикла в java.
Так что-то вроде:
for (Object element : collection1, collection2, ....)
// do something ...
Спасибо
Вы можете сделать именно это с помощью Guava Iterables.concat()
:
for (Foo element : Iterables.concat(collection1, collection2)) {
foo.frob();
}
Collection<Foo> collection1 = ...
Collection<Foo> collection2 = ...
Collection<Foo> collection3 = ...
...
Collection<Foo> all = ...
all.addAll(collection1);
all.addAll(collection2);
all.addAll(collection3);
...
for(Foo element : all)
{
}
Если ваши списки имеют одинаковую длину, просто используйте цикл raw for
:
Object[] aNum = {1, 2};
Object[] aStr = {"1", "2"};
for (int i = 0; i < aNum.length; i++) {
doSomeThing(aNum[i]);
doSomeThing(aStr[i]);
}
Это работает!