从一个数组复制元素并将值移动到另一个数组

时间:2015-04-11 18:14:51

标签: java arrays

我希望我的程序能够排序"排序"一个数组到两个不同的数组。意味着每个大于或等于500的值都会转到数组值2。每个小于500的值都会转到数组值3。

我的问题是,无论我尝试它总是与显示的条件匹配的最后一个值。

    for (int i = 0; i < values.length && i < noOfNumbers; i++)
        {

            if (values[i] >= 500)
            {
                for (int k = 0; k < numbersAbove500; k++)
                {

                    values3[k] = values[i];
                }
            }
                    else 
                    {
                        for (int j = 0; j < numbersAbove500; j++)
                        {
                        values2[j] = values[i];

                        }
                    }



        }

典型输出

您希望数组包含多少个数字? 8

这些是随机数

877 338 741 119 20 853 235 786

这些是大于或等于500的数字:

786 786 786 786

以下是500以下的数字:

235 235 235 235

1 个答案:

答案 0 :(得分:3)

您只需要一个循环。你的内心循环毫无意义。

int j = 0;
int k = 0;
for (int i = 0; i < values.length && i < noOfNumbers; i++) {
    if (values[i] >= 500) {
        values3[k] = values[i];
        k++;
    } else {
        values2[j] = values[i];
        j++;
    }
}