2014-09-23 34 views
0

这里是我的代码:我无法看到正在返回的数组的正确内容。为什么?

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); 
    } 
} 

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

+0

你看到了什么输出与你的期望? – StormeHawke 2014-09-23 20:07:57

回答

1

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

System.out.println(finalArray); 

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

这是因为你需要输出由其中一人一个。像这样的东西

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

现在你正在打印数组作为对象。

阵列扩展对象,它具有toString()方法,即所谓的在您的情况

根据javadoc的

的getClass()。的getName()+ '@' + Integer.toHexString( hashCode())

相关问题