我一直在使用数组,我试图找到一种方法,只用一个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;
}
答案 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表示。
与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
}
}