首页 > 解决方案 > java - 如何在java中使用do while循环从第一个数组中填充第二个数组?

问题描述

所以基本上我的问题是这样的:

我有一个数组(第一个数组,数组 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)是如何填充的部分。任何帮助表示赞赏!

标签: javaarraysdo-while

解决方案


你可以这样做:

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);

您在这里所做的是将每个元素从 A 映射到2x2x + 1索引。然后您可以按照您的意图填写“空白”。


推荐阅读