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