问题是编写一个程序,该程序需要两个由10个整数组成的数组,a和b。 c是一个包含20个整数的数组。程序应将数组a和b放入数组c,c的前10个整数来自数组a,后10个来自b。然后程序应显示c。这是我到目前为止的代码。它将值从arrayA打印到arrayC中,但是我不知道如何在不覆盖arrayC(arrayB)中已经存在的信息的情况下将值从arrayB打印到arrayC中。
public class questionTwo
{
public static void main(String[] args)
{
int [] arrayA = {31, 14, 5, 12, 50, 80, 100, 29, 58, 57};
int [] arrayB = {9, 13, 156, 78, 36, 46, 86, 98, 63, 2};
int [] arrayC = new int [20];
for (int i = 0; i < arrayA.length; i++)
arrayC[i] = arrayA[i];
for (int i = 0; i < arrayB.length; i++)
{
int element = 9;
arrayC[element] = arrayB[i];
element++;
}
System.out.println("The values of ArrayC are: ");
for(int val : arrayC)
{
System.out.println(val);
}
}
}
最佳答案
在解释如何解决当前代码之前,我首先建议您使用arrayC
和arrayA
的长度创建arrayB
(此处具有相同的实际结果,但是它的优点是可以在不修改的情况下向arrayA
或arrayB
添加更多元素代码)。接下来,在真实代码中,我将使用System.arraycopy
执行复制。并使用Arrays.toString(int[])
进行打印。喜欢,
int[] arrayA = { 31, 14, 5, 12, 50, 80, 100, 29, 58, 57 };
int[] arrayB = { 9, 13, 156, 78, 36, 46, 86, 98, 63, 2 };
int[] arrayC = new int[arrayA.length + arrayB.length];
System.arraycopy(arrayA, 0, arrayC, 0, arrayA.length);
System.arraycopy(arrayB, 0, arrayC, arrayA.length, arrayB.length);
System.out.println(Arrays.toString(arrayC));
至于您的原始代码,请使用
arrayA.length
和i
获取正确的偏移量。喜欢,int[] arrayC = new int[arrayA.length + arrayB.length];
for (int i = 0; i < arrayA.length; i++) {
arrayC[i] = arrayA[i];
}
for (int i = 0; i < arrayB.length; i++) {
arrayC[i + arrayA.length] = arrayB[i];
}