Перебирать несколько коллекций в одном цикле "for"? - PullRequest
15 голосов
/ 30 марта 2012

Интересно, есть ли такой способ перебора нескольких коллекций с расширенными для каждого цикла в Java.

Так что-то вроде:

for (Object element : collection1, collection2, ....)
         // do something ...

Спасибо

Ответы [ 3 ]

22 голосов
/ 30 марта 2012

Вы можете сделать это точно с Гуава х Iterables.concat():

for (Foo element : Iterables.concat(collection1, collection2)) {
    foo.frob();
}
2 голосов
/ 30 марта 2012
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)
{

}
1 голос
/ 27 марта 2017

Если ваши списки имеют одинаковую длину, просто используйте цикл for:

Object[] aNum = {1, 2}; 
Object[] aStr = {"1", "2"}; 

for (int i = 0; i < aNum.length; i++) {
    doSomeThing(aNum[i]);
    doSomeThing(aStr[i]);
}

Работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...