2013-11-24 59 views
1

我正在嘗試打印一個直方圖,但在拼接時一直存在麻煩。我是新來的陣列,所以如果任何人都可以幫助這個,它將不勝感激。這裏是我的方法:如何打印直方圖?

public static void main(String[] args) { 
    randomIntArray(5); 
} 

public static int randomInt(int low, int high){ 
    int x= (int)(Math.random()*high)+low; 
    return x;  
} 

public static int[] randomIntArray(int n){ 
    int[] a = new int [n]; 
    for (int i = 0;i<a.length;i++){ 
    a[i]=randomInt (0,100); 
    } 

    System.out.println(printHist(a)); 
    return a; 
} 

public static int[] printHist(int[]a){ 
    int[] k = new int[11]; 
    int i=0; 
    while (i<=10) { 
    int counter = 0; 
    int h=0; 
    while(h<a.length) { 
     if (a[h] == i) { 
     counter++; 
     h++; 
     } 
     h++; 
    } 

    k[i] = counter; 
    i++; 
    } 

    return k; 
} 

這就是我得到的輸出。

[[email protected] 

我需要重新考慮我這樣做的方式,或者是有一個簡單的解決?

+0

檢查出來的'#對象的toString()'方法和它做什麼。 –

+0

嘗試'System.out.println(Arrays.toString(printHist(a)));' –

+0

@ZouZou:好吧,它有點更好,但現在我得到'[0,0,0,0,0,0 ,0,0,0,0,0]'。 –

回答

0

System.out.println(arrayObject)不會做你認爲的事。

嘗試此相關的問題的解決方案之一:What's the simplest way to print a Java array? - 如Arrays.toString(arrayObject)

+0

好吧,它有點更好,但現在我得到'[0,0,0,0,0,0,0,0,0,0,0]' –

+0

根據上面的代碼閱讀,這聽起來像' k [i] = counter'總是分配一個'0'值 - 可能是因爲你的內部條件'h Krease