首页 > 解决方案 > 用其他数组填充数组

问题描述

创建两个大小为 5 的数组 A 和 B 以及大小为 10 的 C。接受两个数组 A 和 B 中的数字。填充数组 C,使前五个位置占据数组 A 中的数字,其余五个位置占据数组 B 中的数字

import java.util.*; 
  
public class Record22_ArrayFill
{ 
    public static void main(String[] args) 
    { 
        Scanner sc = new Scanner(System.in);
        int[] ar1 = new int[5];
        int[] ar2 = new int[5];
        int[] arr = new int[10];
        System.out.println("Enter the elements of the array 1:");
        for(int i = 0; i < ar1.length; i++)
        {
            ar1[i] = sc.nextInt();
        }
        System.out.println("Enter the elements of the array 2:");
        for(int i = 0; i < ar2.length; i++)
        {
            ar2[i] = sc.nextInt();
        }
        for(int i=0; i< 5; i++)
        {
            for(int j=0; j< 5; j++)
            {
                arr[j] = ar1[i];
            }
        }
        for(int i=0; i< 5; i++)
        {
            for(int j=5; j< 10; j++)
            {
                arr[j] = ar2[i];
            }
        }
        System.out.println(Arrays.toString(arr));
    } 
}

标签: java

解决方案


只需使用两个for循环;不需要嵌套循环。请在此处查看下面的代码。

for(int i = 0; i < 5; i++){
    arr[i] = ar1[i];
}
for(int i = 0; i < 5; i++){
    arr[i + 5] = ar2[i];
}

您也可以将其组合成一个for循环。

for(int i = 0; i < 5; i++){
    arr[i] = ar1[i];
    arr[i + 5] = ar2[i];
}

对于较大的数组,使用System.arraycopy会更有效,因为它使用本机调用。请在此处查看下面的代码。

System.arraycopy(ar1, 0, arr, 0, ar1.length);
System.arraycopy(ar2, 0, arr, ar1.length, ar2.length);

推荐阅读