Am接收错误Am接收线程中的错误异常;“主要”;JAVA下面是完整错误
我收到标题中的错误,不知道它意味着什么/如何修复它 程序应该有一个由100个1-100之间的随机数组成的数组,并将该数组中所有可被4整除的数组成一个数组,然后列出它们Am接收错误Am接收线程中的错误异常;“主要”;JAVA下面是完整错误,java,Java,我收到标题中的错误,不知道它意味着什么/如何修复它 程序应该有一个由100个1-100之间的随机数组成的数组,并将该数组中所有可被4整除的数组成一个数组,然后列出它们 public class JavaProgram{ public static void main (String [] args){ int [] hundredNumbers = new int [100]; for ( int i=0; i <hundredNumbers.le
public class JavaProgram{
public static void main (String [] args){
int [] hundredNumbers = new int [100];
for ( int i=0; i <hundredNumbers.length; i++ )
hundredNumbers[i] = (int) Math.random() * 100;
int [] multiplesOfFour = new int [100];
for ( int i=0; i<hundredNumbers.length; i++)
multiplesOfFour[i] = hundredNumbers[i];
getEvenMultiples(multiplesOfFour);
for ( int i=0; i < multiplesOfFour.length; i++ )
System.out.print (multiplesOfFour[i] + " ");
}
public static int[] getEvenMultiples(int[] x){
int result [] = {};
int count = 0;
for (int i = 0; i < x.length ; i++){
if ( x[i] % 4 == 0 ){
result = new int [++count];
result [count] = x[i];
}
}
return result;
}
}
公共类JavaProgram{
公共静态void main(字符串[]args){
整数[]百位数=新整数[100];
对于(int i=0;i而言,问题在于getEvenMultiples函数中的结果数组
使用count(数组的长度)作为索引,由于长度总是大于最大索引,因此会出现此错误。例如,如果数组的长度为2,则只能使用索引0和1。因此,实际上可以执行类似“result[count-1]=x[i];”
您遇到的另一个问题是,在执行“result=new int[++count];”时,始终会删除孔阵列。实际上,您希望使用类似于ArrayList
()的列表。在这里,您可以找到有关如何使用ArrayList
的信息:
啊,你从来不在主函数中使用getEvenMultiples函数的结果。我在代码中添加了getEvenMultiples函数和“result[count-1]=x[I];”。以及如何避免每次都删除整个数组。这是一个问题吗?是的,我应该怎么做才能“每次都删除整个数组?”result=new int[++count];“”,因为我还没有学习ArrayList的内容,我添加了一个指向解释如何使用ArrayList的页面的链接。另一个选项是在函数开头将结果数组设置为与输入数组一样大,而不是在输出结果时仅使用非0的数字。(当然,只能在getEvenMultiples函数的开头创建数组)getEvenMultiples
返回一个数组,但您没有处理调用该数组的结果,因此即使您修复了该方法中的错误,您的代码也会打印错误的数组。您应该始终使用大括号来表示、while
、if
和switch
结构。