Java 交替打印两个阵列
如何使此代码交替打印Java 交替打印两个阵列,java,arrays,Java,Arrays,如何使此代码交替打印countA然后countB然后countA然后countB等等?现在,它先打印所有countA,然后打印所有countB: System.out.println(name + ":"); System.out.print("["); for (int a : countA) { System.out.print(a + "A-"); } for (int b : countB) { System.out.print(b + "B, "); } System.
countA
然后countB
然后countA
然后countB
等等?现在,它先打印所有countA
,然后打印所有countB
:
System.out.println(name + ":");
System.out.print("[");
for (int a : countA) {
System.out.print(a + "A-");
}
for (int b : countB) {
System.out.print(b + "B, ");
}
System.out.print("]");
每次迭代两次
首先,您需要一个循环而不是两个。然后你需要一些交错序列的方法
最简单的方法是每次迭代只打印两个数组中的元素:
for (int i = 0; i < countA.length; i++) {
System.out.println(countA[i]);
System.out.println(countB[i]);
}
完整的代码是:
for (int i = 0; i < countA.length * 2; i++) {
int indexInArray = i / 2;
if (i % 2 == 0) {
// Even, take from first
System.out.println(countA[indexInArray]);
} else {
// Odd, take from second
System.out.println(countB[indexInArray]);
}
}
使用这种方法,可以非常容易地对不同长度的阵列进行调整。您只需将以下内容添加到末尾:
while (next.hasNext()) {
System.out.println(next.next());
}
如上所述,上一个循环被中止,因为current
不再有任何元素。因为next
可能仍然有一些元素,所以我们遍历它的其余元素
迭代器
方法有一个很大的优势,即它也适用于不实现随机访问
(基于索引的快速访问)的类,并且它适用于所有可编辑
,而不仅仅是数组。而且很多类都是可编辑的。缺点是它不能处理原语。每次迭代两次打印
首先,您需要一个循环而不是两个。然后你需要一些交错序列的方法
最简单的方法是每次迭代只打印两个数组中的元素:
for (int i = 0; i < countA.length; i++) {
System.out.println(countA[i]);
System.out.println(countB[i]);
}
完整的代码是:
for (int i = 0; i < countA.length * 2; i++) {
int indexInArray = i / 2;
if (i % 2 == 0) {
// Even, take from first
System.out.println(countA[indexInArray]);
} else {
// Odd, take from second
System.out.println(countB[indexInArray]);
}
}
使用这种方法,可以非常容易地对不同长度的阵列进行调整。您只需将以下内容添加到末尾:
while (next.hasNext()) {
System.out.println(next.next());
}
如上所述,上一个循环被中止,因为current
不再有任何元素。因为next
可能仍然有一些元素,所以我们遍历它的其余元素
迭代器
方法有一个很大的优势,即它也适用于不实现随机访问
(基于索引的快速访问)的类,并且它适用于所有可编辑
,而不仅仅是数组。而且很多类都是可编辑的。缺点是它不能与原语一起工作。只需使用普通的旧循环:
System.out.println(name + ":");
System.out.print("[");
// assuming both arrays have the same length
for (int i = 0; i < countA.length; i++) {
System.out.print(countA[i] + "A-");
System.out.print(countB[i] + "B, ");
}
System.out.print("]");
System.out.println(名称+“:”);
系统输出打印(“[”);
//假设两个数组的长度相同
for(int i=0;i
只需使用普通的旧循环:
System.out.println(name + ":");
System.out.print("[");
// assuming both arrays have the same length
for (int i = 0; i < countA.length; i++) {
System.out.print(countA[i] + "A-");
System.out.print(countB[i] + "B, ");
}
System.out.print("]");
System.out.println(名称+“:”);
系统输出打印(“[”);
//假设两个数组的长度相同
for(int i=0;i
如果两个数组的迭代次数相同,则尝试将两个sysout语句放在同一个循环中。如下图所示:
System.out.println(name + ":");
System.out.print("[");
for (int a : countA) {
System.out.print(a + "A-");
System.out.print(b + "B, ");
}
System.out.print("]");
如果迭代次数不同,则可以使用嵌套循环。像这样:
int count1=0;
int count2=0;
System.out.println(name + ":");
System.out.print("[");
for (int a : countA) {
System.out.print(a + "A-");
count1++;
if(count1<=count2)
{
for(int b:countB)
{
System.out.print(b + "B, ");
count2++;
}
}
}
System.out.print("]");
int count1=0;
int count2=0;
System.out.println(名称+“:”);
系统输出打印(“[”);
for(int a:countA){
系统输出打印(a+“a-”);
count1++;
如果(count1如果两个数组的迭代次数相同,则尝试将两个sysout语句放在同一个循环中。如下所示:
System.out.println(name + ":");
System.out.print("[");
for (int a : countA) {
System.out.print(a + "A-");
System.out.print(b + "B, ");
}
System.out.print("]");
如果迭代次数不同,则可以使用嵌套循环。如下所示:
int count1=0;
int count2=0;
System.out.println(name + ":");
System.out.print("[");
for (int a : countA) {
System.out.print(a + "A-");
count1++;
if(count1<=count2)
{
for(int b:countB)
{
System.out.print(b + "B, ");
count2++;
}
}
}
System.out.print("]");
int count1=0;
int count2=0;
System.out.println(名称+“:”);
系统输出打印(“[”);
for(int a:countA){
系统输出打印(a+“a-”);
count1++;
如果(count1countA本应是一个容器,但您将其命名为count,这是一个真正的mmisleading名称countA本应是一个容器,但您将其命名为count,这是一个真正的mmisleading名称,在您的整数序列代码中,您假设countA在循环语句中为size,在循环体中为containerArray..请解决此问题。@Shivendraagars抱歉,但我没有得到你的评论。我确实假设两个数组的长度相同,我确实提到了这一点。如果不是这样,我还提出了一个解决方案。for(int I=0;IcountA.length
。谢谢,更正了。在整数序列代码中,您假设countA在循环语句中是大小,在循环体中是containerArray。请修复它。@ShivendraAgarwal抱歉,我没有收到您的命令我确实假设两个数组的长度相同,我确实提到了这一点。如果不是这样,我还提出了一个解决方案。for(int I=0;IcountA.length
。谢谢,更正了。