如何在java中使用do while循环从第一个数组填充第二个数组?

vnzz0bqm  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(346)

所以基本上我的问题是:
我有一个数组(第一个数组,数组a),它有20个整数值在0到20之间的元素(它们可以是随机的),比如:

1 2 3 4 5 6 1 2 3 4 

1 2 3 4 5 6 1 2 3 4

我需要创建另一个包含40个元素的数组(第二个数组,数组b),该数组的值与第一个数组的值相同,但关键是第一个数组的值在第二个数组中使用,但在以下模式中:

1 1 2 2 3 3 4 4 5 5
6 6 1 1 2 2 3 3 4 4
5 5 6 6 1 1 2 2 3 3
4 4 5 5 6 6 1 1 2 2

基本上,第二个数组的值从一开始就是:

B[0] = A[0]
B[1] = A[0]
B[2] = A[1]
B[3] = A[1]
etc.

我需要使用do while循环来实现它。

do {
        i++;
        B[i] = A[i];
        if(i>1) {
            B[i] = A[i-1];
        }
        System.out.print("\t" + B[i]+ " ");
        }
        while(i < 20);

现在我被这个问题困住了,我不知道第二个数组(b)是如何填写的。感谢您的帮助!

a9wyjsp7

a9wyjsp71#

你可以这样做:

int[] A = {1,2,3,4,5,6,1,2,3,4};
int[] B = new int[A.length * 2];
int i = 0;

do {
    int index = 2 * i;
    B[index] = A[i];
    B[index + 1] = A[i];
    i++;
} while(i < A.length);

这里要做的是将每个元素从 2x 以及 2x + 1 它的索引。然后你可以像你想的那样填补“空白”。

5uzkadbs

5uzkadbs2#

下面是一个do while循环的示例,它完全按照您的要求执行。

int[] A = {1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4};
int[] B = new int[A.length*2];

int i = 0;
do {
    // Iterates through 0 & 1, then 2 & 3, etc.
    B[i*2] = A[i];
    B[i*2+1] = A[i];
    i++;
} while (i < A.length);

for (int num : B) {
    System.out.printf("%d ", num);
}

这个指纹 1 1 2 2 3 3 4 4 5 5 6 6 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 5 5 6 6 1 1 2 2 3 3 4 4 .

jaql4c8m

jaql4c8m3#

类似于用于:

int[] A = {1, 2, 3, 4, 5, 6, 1, 2, 3, 4};
 int[] B = new int[A.length * 2];
 int index_a = 0; 
 int index_b = 0;
 do {
      B[index_b++] = B[index_b++] = A[index_a++];
 }
 while(index_a < A.length);
 System.out.println(Arrays.toString(B));

在这种情况下需要两个初始条件 index_a ; 以及 index_b 你想做的手术

B[index_b++] = B[index_b++] = A[index_a++];

以及循环条件 index_a < A.length .
这个 B[index_b++] = B[index_b++] = A[index_a++]; 与相同

B[index_b] = A[index_a];
index_b++;
B[index_b] = A[index_a];
index_b++;
index_a++;

相关问题