Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:将数组传递给其他方法时类型不兼容_Java_Arrays_Incompatibletypeerror - Fatal编程技术网

Java 错误:将数组传递给其他方法时类型不兼容

Java 错误:将数组传递给其他方法时类型不兼容,java,arrays,incompatibletypeerror,Java,Arrays,Incompatibletypeerror,如果我的代码凌乱,我深表歉意,因为我对Java非常陌生,也一直在编辑我的部分代码,看看我是否能让它工作。我有一个赋值,我必须在0和25之间生成100随机整数,并将它们存储在数组中。然后,我必须创建另一个方法,将偶数整数排序到一个单独的数组中,然后在另一个方法中利用概率进行此操作 我的问题是,无论我如何努力,我都无法让我的偶数排序方法识别带有100随机整数的原始数组。命令提示说它需要int[],但找到了int。我甚至试着让sortEvens方法需要整数而不是数组,提示说正好相反。这是我的密码: p

如果我的代码凌乱,我深表歉意,因为我对Java非常陌生,也一直在编辑我的部分代码,看看我是否能让它工作。我有一个赋值,我必须在
0
25
之间生成
100
随机整数,并将它们存储在数组中。然后,我必须创建另一个方法,将偶数整数排序到一个单独的数组中,然后在另一个方法中利用概率进行此操作

我的问题是,无论我如何努力,我都无法让我的偶数排序方法识别带有
100
随机整数的原始数组。命令提示说它需要
int[]
,但找到了int。我甚至试着让sortEvens方法需要整数而不是数组,提示说正好相反。这是我的密码:

public class AssignmentEight
{
public static void main (String[] args)
{
    final int NUMBER_OF_ELEMENTS = 100;
    int numbers[];
    int evens[];
    int odds[];
    numbers = new int[100];

    for (int n = 0; n < numbers.length; n++)
    {
        numbers[n] = (int)(Math.random() * 25);
    }

    evens = sortEvens (numbers);
    display (evens);
}

public static int sortEvens (int a[])
{

    int evens[];
    for (int n = 0; n < 100; n++)
    {
        int x = (a[n] % 2);
        if (x == 0)
        {
            evens[n] = a[n];
        }
    }
    return evens;
}

public static void display (int array[])
{
    for (int n = 0; n < array.length; n++)
        System.out.print(array[n]);
        System.out.print("\t");
}
}
公共类分配八
{
公共静态void main(字符串[]args)
{
元素的最终整数=100;
整数[];
整晚[];
整数赔率[];
数字=新整数[100];
对于(int n=0;n
如果这不合理,我道歉。我的主要问题是我不能编译我的程序。如有必要,我将尝试提供更多详细信息。

您的
sortEvens()
方法需要返回
int[]
。您还忘了初始化数组

public static int[] sortEvens (int a[]) {
    int evens[] = new int[100];
    // ...
}
getEvens()
方法中

if ((x == 0)) // ^ (x == 2)) <-- remove this ^ condition
    totalEvens += 1;

for (n = 0; n < a.length; n++) { // loop a.length times; not totalEvens
    x = (a[n] % 2);
    if (x == 0) { // ADDED
        evens[y] = a[n];
        y++; // increment only when an even is found
    } // ADDED
}
for (n = 0; n < a.length; n++) { // loop a.length times; not totalOdds
    x = (a[n] % 2);
    if (x == 1) { // ADDED
        odds[y] = a[n];
        y++; // increment only when an odd is found
    } // ADDED
}

现在可能不相关,但是
evens[]
没有初始化,因此当它编译时,当执行
evens[n]=a[n]
时,您将收到
NullPointerException
。由于这是一个赋值,我们留给您下一个问题:如何仅返回偶数?顺便说一句,我建议您将sortEvens重命名为selectEvens,或getEvens,因为排序通常意味着更改数据的顺序,使其以升序排列。由于这是一个赋值,我们留给您下一个问题:如何仅返回偶数?顺便说一句,建议您将
sortEvens
重命名为
selectEvens
,或
getEvens
,因为
sort
通常意味着更改数据的顺序,使其按升序排列。@256,我认为您应该在OP中直接给出此评论;不是我。@user2709168因为这是一个任务,我们留给您下一个问题:如何只返回偶数?顺便说一句,我建议您将sortEvens重命名为selectEvens,或getEvens,因为排序通常意味着更改数据的顺序,使其以升序排列。(谢谢拉维)。@andy256,如果你想与OP交流一些东西,你应该添加对问题本身的评论。只有当您希望向发布答案的用户传达某些信息时,才可以在答案上添加注释。例外情况是,当您想将评论指向已经在该答案上留下评论的人时,您可以使用@username。我希望你明白我的意思。我做了你和@andy256所说的。我的新代码在。我想我更接近了,因为它确实显示了它生成的整数,但我不能阻止它用零替换偶数数组中的每个奇数,反之亦然。你怎么认为?