我无法看到我返回的数组的PROPER内容。为什么?

时间:2014-09-23 20:01:20

标签: java

这是我的代码:

import java.util.*;
import java.lang.*;
import java.io.*;


class BubbleSort {

    public static int[] bubbleSort(int[]arrayInput) {

        boolean swapped = true;
        int tmp = 0;

        while(swapped) {

            swapped = false;//We don't know if the array is pre-sorted

            for(int i = 0; i<(arrayInput.length)-1; i++) {

                if(arrayInput[i] > arrayInput[i+1]) {

                    tmp = arrayInput[i];
                    arrayInput[i] = arrayInput[i+1];
                    arrayInput[i+1] = tmp;

                    swapped = true;//Unsorted array - check again
                }
            }
        }

        return arrayInput;
    }

    public static void main (String[] args) throws java.lang.Exception {

        int[]unsorted = {13, 2, 11, 6, 5, 15};
        int[]finalArray = bubbleSort(unsorted);
        System.out.println(finalArray);
    }
}

我完全不确定为什么我会把一堆废话归还给我。代码编译没有问题。我对它的正确性非常肯定。任何人都可以帮我生成一个整数数组,而不是垃圾。感谢

2 个答案:

答案 0 :(得分:1)

要打印数组中包含的值,请使用Arrays#toString。 变化

System.out.println(finalArray);

System.out.println(Arrays.toString(finalArray));

答案 1 :(得分:0)

这是因为您需要逐个输出它们。像这样的东西

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

现在您正在将数组打印为对象。

Array extends Object,它具有toString()方法,在您的情境中调用

根据javadoc

  

getClass()。getName()+&#39; @&#39; + Integer.toHexString(hashCode())