2016-04-30 165 views
-3

我正在嘗試創建一個返回數組模式的方法(我不是問如何製作方法,而是寧願不給我任何想法,對於那些一直在批評我的問題的人因爲重複他人,我知道答案已經在這個網站上了,這不是問題)。我做了一個方法,在一個名爲BasicMathMethods類,稱爲getTotal:類型不兼容

public static int getTotal(double[] a, int b) 
{ 
    int count = 0; 
    int Element; 
    for(Element = 0; Element < a.length; Element++) 
    { 
     if(a[b] == a[Element]) 
     { 
      count++; 
     } 
    } 
    return count; 
} 

而且我想在我的方式方法,使用這種方法:

public static double Mode(double[] a) 
{ 
    for(int element = 0; element < a.length; element++) 
    { 
     int[] largest = BasicMathMethods.getTotal(a, element);// gets the count of each element 
     Arrays.sort(largest); 
     if(BasicMathMethods.getTotal(a, element) == largest.length) 
     return a[element]; 
    } 
} 

然而,我的編譯器(這是藍j通過)表示「不兼容的類型:int不能轉換爲int []」,並突出顯示(a,元素)。我不明白這個錯誤。我沒有看到我想將int []轉換爲int的位置。誰能告訴我錯誤是什麼,並解釋?

+0

你的代碼充滿了風格的暴行。 1)切勿以大寫字母開始局部變量的名稱。 2)切勿以大寫字母開始方法的名稱。 3)使用一致的縮進。 –

+0

對不起,我的代碼打擾你...我是一個初學者。 – Alioune

+0

如果你想使用異常,你會發現你不能在一個被聲明爲int數組的變量中存儲一個int。 –

回答

0

如果你想添加你BasicMathMethods.getTotal(a, element)到一個數組的價值,也有一些併發症。你不知道你會得到多少價值。因此,您將無法知道所需的陣列大小。使用ArrayList代替數組。

但更重要的是。我想指出你的方法獲得mode的主要問題。閱讀下面的代碼,看看它是否有意義。

public static double mode(double[] a) { 

    double currentBestCandidate = a[0]; 
    int countCurrentBestCandidate = BasicMathMethods.getTotal(a, 0); 

    // we already have index 0, lets start from 1 
    for(int element = 1; element < a.length; element++) { 
     int count = BasicMathMethods.getTotal(a, element); 

     // if this count is greater than what we have 
     // right now, we need to update currentBestCandidate 
     // and countCurrentBestCandidate 
     if(count > countCurrentBestCandidate) { 
      currentBestCandidate = a[element]; 
      countCurrentBestCandidate = count; 
     } 
    } 
    return currentBestCandidate; 
} 
+0

我明白了。這非常聰明。謝謝。 – Alioune

3

你從getTotal返回一個int,並試圖把它放到一個int []變量中。

int[] largest = BasicMathMethods.getTotal(a, element); 

getTotal的返回類型爲int

public static int getTotal(double[] a, int b) 
+0

我在想它應該是一個整數數組,這就是爲什麼我把int []最大= BasicMathMethods.getTotal(a,元素)。我希望它將整數添加到數組中。我會怎麼做? – Alioune

+0

你應該閱讀這個。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html除其他外,它還介紹瞭如何將整數放入數組中。 –