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