0

这是我的主要方法:

public static void main(String[] args) {

    int[] myArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

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

    int[] sortedArray = InsertionSort.sorter(myArray);

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

这是 InsertionSort.sorter 的样子:

public static int[] sorter(int[] a) {

    return a;

}

这是输出:

1
2
3
4
5
6
7
8
9
10
[I@7000a32b
[I@7000a32b
[I@7000a32b
[I@7000a32b
[I@7000a32b
[I@7000a32b
[I@7000a32b
[I@7000a32b
[I@7000a32b
[I@7000a32b

那么我错过了什么?

4

4 回答 4

8
for (int i = 0; i < sortedArray.length; i++) {
    System.out.println(sortedArray);
}

缺少的是数组索引:

for (int i = 0; i < sortedArray.length; i++) {
    System.out.println(sortedArray[i]);  // note the [i]
}

或者(使用 for-each 循环):

for (int i: sortedArray){
     System.out.println(i);
}

您所做的是打印整个数组(这在 Java 中并不漂亮)。

于 2013-05-04T13:40:05.007 回答
3

您可以使用Arrays.toString(int[])

Arrays.toString(sortedArray)
于 2013-05-04T13:44:19.110 回答
2
System.out.println(sortedArray);

应该

System.out.println(sortedArray[i]);
于 2013-05-04T13:41:39.240 回答
1

您正在打印地址,而不是数组的值。这就是为什么 :)

于 2013-05-04T13:53:39.943 回答