java - 将两个数组复制到一个数组

标签 java arrays

问题是编写一个程序,它接受两个数组,每个数组包含 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);
    } 

  }
}

最佳答案

在解释如何修复当前代码之前,我首先建议您使用 arrayAarrayB 的长度创建 arrayC(此处具有相同的实际结果,但它的优点是您可以在不修改代码的情况下向arrayAarrayB 添加更多元素)。接下来,在实际代码中,我将使用 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.lengthi 来获得正确的偏移量。喜欢,

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];
}

关于java - 将两个数组复制到一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46841780/

相关文章:

c - scanf 和 printf 仅使用整数指针在数组中显示 10 个数字//不能使用整数而不是 A[]。 +1 更多

Python C API 读取列表列表,分配内存和全局变量

PHP 计算 bool 数组中真值的个数

java - 每次添加/删除元素时如何验证列表?

java - Optaplanner:bestScore 和 bestSolution 分数之间的差异

java - 如何在 Java 中进行直接替换

javascript - 如何按定义的顺序创建数组,如下所示?

c++ - 声明可变大小数组时出现意外的编译器行为

java - 如何在一个 session 中发送多封电子邮件?

java - 在 swing 中调整图像大小