Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否将阵列复制到另一个阵列?_Java_Arrays_Copying - Fatal编程技术网

Java 是否将阵列复制到另一个阵列?

Java 是否将阵列复制到另一个阵列?,java,arrays,copying,Java,Arrays,Copying,我有一个问题:我想要一个数组,我想复制到另一个数组中,这样当用户在第一个数组中输入一些内容,并想添加更多的项目(在另一个数组中)时,它不会完全擦除用户原来拥有的内容 这是我的密码: System.out.println("Input up to '10' numbers for current array: "); int[] array1; array1 = new int[10]; Scanner scan = new Scanner(System.in)

我有一个问题:我想要一个数组,我想复制到另一个数组中,这样当用户在第一个数组中输入一些内容,并想添加更多的项目(在另一个数组中)时,它不会完全擦除用户原来拥有的内容

这是我的密码:

    System.out.println("Input up to '10' numbers for current array: ");

    int[] array1;
    array1 = new int[10];

    Scanner scan = new Scanner(System.in);

    for (int i = 0; i < 10; i++) {
        System.out.println((i+1)+": ");
        int input = scan.nextInt();
        if (input == 0) {
            break;

        } else {
            array1[i] = input;
        }

        int[][] array2 = new int[2][];
        for (i = 0; i <3; i ++){

            array2[i] = Arrays.copyOf(array1[i], array1[i]);
        }
        }
    }
}
System.out.println(“为当前数组最多输入'10'个数字:”);
int[]阵列1;
array1=新整数[10];
扫描仪扫描=新扫描仪(System.in);
对于(int i=0;i<10;i++){
System.out.println((i+1)+“:”);
int input=scan.nextInt();
如果(输入==0){
打破
}否则{
阵列1[i]=输入;
}
int[][]数组2=新int[2][];

对于(i=0;i我知道您的问题是将输入保存在第一个数组中,最大值为,但如果设置为零,则可能会退出。然后将数据从array1复制到插入数据大小的array2中。是否正确

好的,我修改了您的代码,向您展示了指令Arrays.copyOf的使用(您需要导入java.util.Arrays)。 关键是,您需要将复制指令从for循环中写入。我建议您使用length属性,而不是for循环范围内的普通数字。此外,如果要将整个array1(包括零)复制到array2中,请替换第二个参数:

        array2 = Arrays.copyOf(array1, array1.length);
代码如下:

public static void main(String[] args) {

     System.out.println("Input up to '10' numbers for current array: ");

        //Declaring array1 and scanner
        int[] array1 = new int[10];
        int i;
        Scanner scan = new Scanner(System.in);

        //Your loop to ask for data into array1
        for (i = 0; i < array1.length; i++) {
            System.out.print((i+1)+": ");
            int input = scan.nextInt();
            if (input == 0) {
                break;
            } else {
                array1[i] = input;
            }
        }

        //Copy array1 into array2
        int[] array2 = new int[i];

        for(int j=0; j<i;j++){
            array2[j] = array1[j];
        }

        //array2 = Arrays.copyOf(array1, i);
        // array2 = copy(array1, i);

        //Print out the second array, only for test
        for (int j = 0; j < array2.length; j++) {
            System.out.println(array2[j]);
        }

        scan.close();
}


public static int[] copy(int [] source, int len){
    int [] target = new int[len];
    for(int i=0; i<len;i++){
        target[i] = source[i];
    }

    return(target);
}
publicstaticvoidmain(字符串[]args){
System.out.println(“为当前数组最多输入'10'个数字:”;
//声明阵列1和扫描仪
int[]数组1=新int[10];
int i;
扫描仪扫描=新扫描仪(System.in);
//您的循环要求将数据输入阵列1
对于(i=0;i对于(int j=0;j使用System.arrayCopy()来执行此操作。

您必须使用数组吗?我会使用一个ArrayList,当您向它添加数据时它会增长。您解释了您的任务并显示了一些代码,但您没有告诉我们当前解决方案的问题。请详细说明您的问题是什么。:
array2[I]=Arrays.copyOf(array1[i],array1[i])
-你想在这里做什么?这个方法不需要两个整数。@Eran,我想我是在尝试一些随机的东西。我仍然不太擅长用Java编码。我想尝试使用循环从第一个数组中输入的数字创建第二个数组。不确定我是否正确。谢谢你在这方面的帮助。我正在寻找在web上查看一些示例,我不想在代码中导入任何内容。如果不导入工具,我如何才能做到这一点?我想尝试使用基本概念编写上面的代码。好吧,创建您自己的复制方法(我修改了示例),并替换代码array2=copy(array1,I);我不理解这部分
array2=copy(第1、1条);
在代码中创建新类之前,我没有使用过调用方法。我可以不使用调用方法来做一些事情吗?如果我问的问题太多,很抱歉。试图理解JAVA中的编码概念。使用与方法相同的代码,但直接在主代码中使用。我再次修改了示例。您可以看到结果相同但没有方法:int[]array2=newint[i];for(int j=0;j