2016-04-30 161 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除其他外,它还介绍了如何将整数放入数组中。 –