使用for循环将一个数组复制到另一个数组

时间:2013-05-24 06:14:53

标签: java

我一直在使用数组,我试图找到一种方法,只用一个for循环将一个数组复制到另一个数组(我已经看过像arrayCopy这样的东西,并在其他线程中克隆,但是对于这个练习我需要使用for循环从一个数组复制到另一个数组。

现在我的代码执行了,但只是吐了出来:“[D @ 133c5982”。我正在使用的代码是:

public class sorted 
{
    public static void main(String[] args)
    {
        int [] unSortedArray = {8,12,6,5,19};
        System.out.println(copyArray(unSortedArray));
        //System.out.println(sortedArray(unSortedArray));
    }

    public static int[] copyArray(int[] array)
    {
        int [] copyArray;
        copyArray = new int[array.length];
        for (int i = 1; i < array.length; i++)
    {
        copyArray[i] = array[i];
    }
    return copyArray;
}

6 个答案:

答案 0 :(得分:4)

首先,当你用1开始索引时,你复制整个数组

与您的代码一样

for (int i = 1; i < array.length; i++)
{
        copyArray[i] = array[i];
}

以0

开始索引

第二,您可以使用Arrays.deepToString(array)Arrays.toString(array)以可读格式打印数组

答案 1 :(得分:1)

您的代码没问题,它会复制数组。执行System.out.println时,它会打印出数组toString()方法的默认实现。要确定它确实被复制了,你可以

for (int i = 0; i<unsortedArray.length; i++) {
    System.out.println(unsortedArray[i]);
}

for (int i = 0; i<copiedArray.length; i++) {
    System.out.println(copiedArray[i]);
}

编辑:查看您的代码实际打印出来的评论

答案 2 :(得分:0)

copyArray返回一个数组,这就是你要打印的内容。您看到的是Java虚拟机将对象表示为字符串的方式。 @ 12345是对象的ID。

提供的代码没有任何问题,除了最后的一个}(复制时可能省略)。

答案 3 :(得分:0)

打印时,您使用的数组默认为toString,但不会打印字符串的内容。

从Java 1.5开始,您可以使用Arrays.toString(array)来获取数组的一个很好的String表示。

See the API here

System.out.println一起使用可获得良好的打印效果。

答案 4 :(得分:0)

你所做的是正确的。但是如果使用System.out.println(copyArray(unSortedArray));打印数组,它只打印出数组的位置。相反,尝试在for循环中打印数组的每个元素。

for (int i = 1; i < array.length; i++)
{
   system.out.println(array[i]);
}
//Arrays.toString(<arrayname>) can also be used in place of the for loop. 

此外,数组索引从0开始。因此,您的方法应如下所示。

public static int[] copyArray(int[] array)
{
    int [] copyArray;
    copyArray = new int[array.length];
    for (int i = 0; i < array.length; i++)
{
    copyArray[i] = array[i];
}
return copyArray;

答案 5 :(得分:0)

试试这个

 package naveed.workingfiles;

 import java.util.Arrays;

 public class Array 
{
public static void main(String[] args)
{
    int [] unSortedArray = {8,12,6,5,19};
    int [] unSortedCopyArray =new  int [unSortedArray.length];

    //System.out.println(sortedArray(unSortedArray));
    for(int i=0;i<unSortedArray.length;i++)
    {
        unSortedCopyArray[i]=unSortedArray[i];
    }           
    System.out.println(Arrays.toString(unSortedArray));//exist array
    System.out.println(Arrays.toString(unSortedCopyArray));//copied array


}

}