Java 类型不亲和性

Java 类型不亲和性,java,Java,我正在尝试创建一个返回数组模式的方法(我不是问如何创建该方法,我希望你们不要给我任何想法。对于那些不断批评我的问题是重复别人的问题的人,我知道答案已经在这个网站上了。这不是问题)。我在一个名为BasicMathMethods的类中创建了一个名为getTotal的方法: public static int getTotal(double[] a, int b) { int count = 0; int Element; for(Element = 0; Element &l

我正在尝试创建一个返回数组模式的方法(我不是问如何创建该方法,我希望你们不要给我任何想法。对于那些不断批评我的问题是重复别人的问题的人,我知道答案已经在这个网站上了。这不是问题)。我在一个名为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;
}
publicstaticintgettotal(double[]a,intb)
{
整数计数=0;
int元素;
对于(元素=0;元素
我尝试在我的模式方法中使用此方法:

 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];
    }
}
公共静态双模式(双[]a)
{
for(int元素=0;元素

但是,我的编译器(顺便说一句,是蓝色的J)说“不兼容的类型:int不能转换为int[]”,并突出显示(a,元素)。我不明白这个错误。我看不出我在哪里尝试将int[]转换为int。有人能告诉我错误是什么并解释一下吗?

您从getTotal返回一个int,并试图将其放入int[]变量中

int[] largest = BasicMathMethods.getTotal(a, element);
getTotal的返回类型是
int

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

如果要将从
BasicMathMethods.getTotal(a,element)
中获得的值添加到数组中,则会有一些复杂情况。你不知道你会得到多少值。因此,您将无法知道所需的数组大小

使用数组而不是数组

但更重要的是。我想指出您获得
模式的主要问题。请仔细阅读下面的代码,看看是否有意义。

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;
}
公共静态双模式(双[]a){
double CurrentBest候选者=a[0];
int countCurrentBestCandidate=BasicMathMethods.getTotal(a,0);
//我们已经有了索引0,让我们从1开始
for(int-element=1;element计数当前最佳候选){
CurrentBest候选者=一个[元素];
countCurrentBestCandidate=计数;
}
}
返回最佳候选人;
}

您的代码充满了风格吸引力。1) 切勿以大写字母开头局部变量的名称。2) 方法的名称不能以大写字母开头。3) 使用一致的缩进。很抱歉,我的代码打扰了您……我是一个初学者。如果您用谷歌搜索异常,您会发现您无法在声明为
int数组的变量中存储
int
。我是一个初学者-这就是我告诉您的原因。这样你就可以学习了!在Java世界中,忽略样式规则类似于编写英语,而忽略语法、标点符号和拼写规则。这对读者来说很恼火,而且容易导致人们误读你所写的内容。谢谢你告诉我Stephen C。我会认真考虑你的建议。我认为它应该是一个整数数组,这就是为什么我把int[]max=BasicMathMethods.getTotal(a,element)放在这里。我希望它将整数添加到数组中。我该怎么做?你应该看看这个。除此之外,它还向您展示了如何将整数放入数组。这很聪明。非常感谢。