Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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 - Fatal编程技术网

Java 无法将数组传递给第二个方法

Java 无法将数组传递给第二个方法,java,arrays,Java,Arrays,我的家庭作业有困难,我只是不太擅长正确地编写代码,我可以理解它是如何工作的,但自己创建它是一件困难的事。我应该写一个应用程序,创建一个从1到100的10个随机数的数组,然后打印出来。第二种方法计算平均值,第三种方法显示低于该平均值的所有数字。我已经完成了前两部分,但是它只显示了10个随机整数,没有计算平均值,我的代码是这样的 import java.util.Random; public class ArrayTest{ public static void main(String[] ar

我的家庭作业有困难,我只是不太擅长正确地编写代码,我可以理解它是如何工作的,但自己创建它是一件困难的事。我应该写一个应用程序,创建一个从1到100的10个随机数的数组,然后打印出来。第二种方法计算平均值,第三种方法显示低于该平均值的所有数字。我已经完成了前两部分,但是它只显示了10个随机整数,没有计算平均值,我的代码是这样的

import java.util.Random;

public class ArrayTest{

public static void main(String[] args){

    Random random= new Random();
    int numbers[]= new int[10];
    for (int i = 0; i < 10; i++)
    {
    int number= random.nextInt(100);
    System.out.println(number);
    numbers[i]=number;
    }
}

public static int average(int [] array){
    int sum =0;
    for (int i = 0; i < array.length; i++){
        sum += array[i];
        int finalAvr = array[i] /10;
    }
    return sum / 10;
    }
}
import java.util.Random;
公共类阵列测试{
公共静态void main(字符串[]args){
随机=新随机();
整数[]=新整数[10];
对于(int i=0;i<10;i++)
{
整数=random.nextInt(100);
系统输出打印项次(编号);
编号[i]=编号;
}
}
公共静态int平均值(int[]数组){
整数和=0;
for(int i=0;i

我哪里出了问题,请温和一点。

以下是如何使数组成为方法中的参数:

public static void doStuff(int[] numbers){
        //super awesome code
    }
如果在另一个方法中有一个数组(称为digits),可以通过键入
doStuff(digits)
将其直接传递给doStuff()。就这么简单

现在,回答你的问题。。在第三种方法中,我认为应该添加两个参数:数组和前面得到的平均值。另外,很难判断有多少数字小于平均值,我建议您使用arraylist而不是数组。以后可以转换为数组。看看这个:

public static int[] getSmallValues(int average, int[] numbers){
    Arraylist<Integer> smallNumbers = new Arraylist<>();

    for(int i: numbers){
        if(i < average){
            smallNumbers.add(i);
        }
    }

    return ((int[]) smallNumbers.toArray());
}
public static int[]getSmallValues(int平均值,int[]number){
Arraylist smallNumbers=新的Arraylist();
用于(int i:数字){
如果(i<平均值){
加上(i);
}
}
返回((int[])smallNumbers.toArray());
}

我希望这有帮助。。快乐的编码

下面介绍如何将数组作为方法中的参数:

public static void doStuff(int[] numbers){
        //super awesome code
    }
如果在另一个方法中有一个数组(称为digits),可以通过键入
doStuff(digits)
将其直接传递给doStuff()。就这么简单

现在,回答你的问题。。在第三种方法中,我认为应该添加两个参数:数组和前面得到的平均值。另外,很难判断有多少数字小于平均值,我建议您使用arraylist而不是数组。以后可以转换为数组。看看这个:

public static int[] getSmallValues(int average, int[] numbers){
    Arraylist<Integer> smallNumbers = new Arraylist<>();

    for(int i: numbers){
        if(i < average){
            smallNumbers.add(i);
        }
    }

    return ((int[]) smallNumbers.toArray());
}
public static int[]getSmallValues(int平均值,int[]number){
Arraylist smallNumbers=新的Arraylist();
用于(int i:数字){
如果(i<平均值){
加上(i);
}
}
返回((int[])smallNumbers.toArray());
}

我希望这有帮助。。快乐的编码

第一个问题是,您从未调用
average()
方法:

Random random= new Random();
int numbers[]= new int[10];
for (int i = 0; i < 10; i++)
{
   int number= random.nextInt(100);
   System.out.println(number);
   numbers[i]=number;
}
System.out.println(average(numbers));
或使用流:

Arrays.stream(arr).filter(e -> e > average).forEach(System.out::println);

第一个问题是您从未调用
average()
方法:

Random random= new Random();
int numbers[]= new int[10];
for (int i = 0; i < 10; i++)
{
   int number= random.nextInt(100);
   System.out.println(number);
   numbers[i]=number;
}
System.out.println(average(numbers));
或使用流:

Arrays.stream(arr).filter(e -> e > average).forEach(System.out::println);

您从未调用
average
函数。您从未调用
average
函数。