Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 交替打印两个阵列_Java_Arrays - Fatal编程技术网

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
。谢谢,更正了。