Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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 ArrayList中元素的平均值 public static int averageInArrayList(ArrayList ArrayList){ 整数和=0; 如果(!ArrayList.isEmpty()){ for(整数和:ArrayList){ sum+=数组列表; } double total=sum.doubleValue()/ArrayList.size(); } 返回总数; }_Java - Fatal编程技术网

Java ArrayList中元素的平均值 public static int averageInArrayList(ArrayList ArrayList){ 整数和=0; 如果(!ArrayList.isEmpty()){ for(整数和:ArrayList){ sum+=数组列表; } double total=sum.doubleValue()/ArrayList.size(); } 返回总数; }

Java ArrayList中元素的平均值 public static int averageInArrayList(ArrayList ArrayList){ 整数和=0; 如果(!ArrayList.isEmpty()){ for(整数和:ArrayList){ sum+=数组列表; } double total=sum.doubleValue()/ArrayList.size(); } 返回总数; },java,Java,嗨,我很难返回Arraylist中所有元素的平均值 (也不太确定我的第一行是否正确)您必须声明双倍总计超出条件范围,否则它将不可用。把它放在总和下一行。此外,由于您不再返回int专用双精度计算范围(列表标记),因此必须将返回类型更改为double{ public static int averageInArrayList(ArrayList <Integer> arrayList) { Integer sum = 0; if(!ArrayList.isEmpty())

嗨,我很难返回Arraylist中所有元素的平均值
(也不太确定我的第一行是否正确)

您必须声明
双倍总计
超出条件范围,否则它将不可用。把它放在总和下一行。此外,由于您不再返回
int

专用双精度计算范围(列表标记),因此必须将返回类型更改为
double
{
public static int averageInArrayList(ArrayList <Integer> arrayList) {
    Integer sum = 0;
    if(!ArrayList.isEmpty()) {
        for (Integer sum : ArrayList) {
            sum += ArrayList;
        }
        double total = sum.doubleValue() / ArrayList.size();
    }
    return total;
}
整数和=0; 如果(!marks.isEmpty()){ 用于(整数标记:标记){ 总和+=分数; } 返回sum.doubleValue()/marks.size(); } 回报金额; }
Java8

private double calculateAverage(List <Integer> marks) {
  Integer sum = 0;
  if(!marks.isEmpty()) {
    for (Integer mark : marks) {
        sum += mark;
    }
    return sum.doubleValue() / marks.size();
  }
  return sum;
}
公共静态双重计算权限(列表){
返回列表
.stream()
.mapToInt(编号->编号)
.average().getAsDouble();
}

为什么不使用lambda方法

public static double calculateAverage(List<Integer> list) {
    return list
            .stream()
            .mapToInt(number -> number)
            .average().getAsDouble();
}
List testList=Arrays.asList(1,2,3,4,5,6,7,8,9,10);
double-intAverage=testList.stream()
.mapToInt(整数::intValue)
.average()
.orElse(0.0);
系统输出打印项次(平均值);
作为一种方法:

List<Integer> testList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

double intAverage = testList.stream()
    .mapToInt(Integer::intValue)
    .average()
    .orElse(0.0);

System.out.println(intAverage);
publicstaticdoubleaveragelist(列表testList){
返回testList.stream()
.mapToInt(整数::intValue)
.average()
.orElse(0.0);
}

只要换三行就行了

public static double averageList(List<Integer> testList) {
     return testList.stream()
        .mapToInt(Integer::intValue)
        .average()
        .orElse(0.0);
}
publicstaticdoubleaverageinaraylist(List-ArrayList){//第1行
整数和=0;
如果(!ArrayList.isEmpty()){
对于(整型元素:ArrayList){//第2行
sum+=元素;//第3行
}
double total=sum.doubleValue()/ArrayList.size();
}
返回总数;
}

只需将您的返回类型更改为Double(平均值不是整数),然后将您的流更改为DoubleStream即可进行有效计算:

public static double averageInArrayList(List <Integer> ArrayList) { //line 1
    Integer sum = 0;
    if(!ArrayList.isEmpty()) {
        for (Integer element: ArrayList) {  //line 2
            sum += element;                 //line 3
        }
        double total = sum.doubleValue() / ArrayList.size();
    }
    return total;
}
公共静态双平均数组列表(ArrayList ArrayList){
返回数组列表
.stream()
.mapToDouble(整数::doubleValue)
.average()
.orElse(0.0D);
}

Type将变量total强制转换为int,因为您返回的是int-Type实际上不需要检查arrayList是否为空。您应该始终选择基本类型而不是装箱的基本类型<代码>整数和=0应替换为
int sum=0。返回类型应该是
double
而不是
int
我收到一个错误提示:找不到指向first lineHi@Jamez列表的符号,我将对提问者以及将来可能查看您答案的其他人非常有帮助,解释你的答案,而不仅仅是转储代码。你在说什么?这是我在代码中的一个示例。我将向他展示我的代码中的内容,他可以为他提供代码的结构。我得到一个Arraylist,我必须返回AverageOHH!!呃,当数组为空{}时,另一个测试失败,我需要返回0.00,我如何添加它in@qwert123Fixed指向返回总计-错误找不到符号,我不知道为什么
total
超出返回范围。您已在
if
块内声明
total
并在块外返回它。请修改你的答案。
public static double averageInArrayList(ArrayList <Integer> arrayList) {
    return arrayList
            .stream()
            .mapToDouble(Integer::doubleValue)
            .average()
            .orElse(0.0D);
}