是否可以在下面同时运行2个增强的for循环?
loops1 is a list of integers 1,2,3
loops2 is a list of integers 5,6,7
for(loop1 : loops1 && loop2 : loops2)
{
System.out.println(loop1 + loop2);
}
Output in a way : 1 5 2 6 3 7
任何输入都会有所帮助。
谢谢!!!
答案 0 :(得分:6)
不,这是不可能的。您可以尝试使用迭代器实现此目的:
Iterator<Integer> it1 = loops1.iterator();
Iterator<Integer> it2 = loops2.iterator();
while (it1.hasNext() && it2.hasNext())
System.out.println(it1.next()+it2.next());
当然,如果列表的长度不同,则必须决定如何处理较长列表的额外整数。
答案 1 :(得分:1)
不,你不能这样做。您必须有一个复合值列表(例如,每个项目有两个整数)或其中一些,或者当然使用正常的for
循环。
答案 2 :(得分:1)
是否可以同时运行2个增强循环
这是不可能的,我无法想象可能需要它的情况。可以找到文档here。
答案 3 :(得分:0)
不,没有。您可以尝试执行常规for循环并通过索引检索...或者使用java 8并查看如果它们的功能结构允许您压缩2个集合,这最终只会成为正常的每个循环。< / p>
答案 4 :(得分:0)
没有
当列表长度不同时,它会如何工作?
当你编译for-each循环时,字节代码只是一个带有一些额外(隐藏)变量的循环的正常。 JAD反编译器可以用来验证这一点。
例如,编译:
for(String s : list)
System.out.println(s);
将生成等效的字节码:
int length = list.size();
for(int i = 0; i < length; i++) {
String s = list.get(i);
System.out.println(s);
}
答案 5 :(得分:0)
是否可以对同时运行的循环进行2次增强
否这是不可能的。的但强>
这里有两个长度相同的列表。你也想拿出来作为
1 5 2 6 3 7
(First element of list1) (first element of list two)...so on
然后你可以尝试如下
List<Integer> list1=new ArrayList<>();
List<Integer> list2=new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
list2.add(5);
list2.add(6);
list2.add(7);
for(int i=0;i<list1.size();i++){ // both list must in equal size
System.out.print(list1.get(i) + " " + list2.get(i));
System.out.print(" ");
}
Out put:
1 5 2 6 3 7