Как сохранить значение, переданное из метода, который имеет массив в качестве параметра и возвращаемый тип double?

У меня есть метод, который имеет массив в качестве параметра, я хотел передать ему двойное значение, но не могу сохранить значение, переданное из метода.

public static void main(String[] args) {

    double [] temperature = {2.5, 10.3, 50.0, 66.7, 77.9, 33.2, 0.33};

    double final = averageTemp(temperature);

    System.out.println(final);
}
public static double averageTemp(double [] temp){
    int size =temp.length ;
    double total = 0;
    for(int i =0; i<size; i++){
        total += temp[i];
    }
    double average =  total/size;

    return average;
}

Я ожидаю сохранить возвращенное «среднее» в «окончательной» переменной и распечатать его. Но получаю ошибку.

Всего 2 ответа

Автоматический диспенсер мыльной пены от xiaomi.


"final" - это ключевое слово в Java.

Выберите другое имя переменной.


Вы можете попробовать это:

double [] temps = {2.5, 10.3, 50.0, 66.7, 77.9, 33.2, 0.33};

OptionalDouble od = DoubleStream.of(temps).average();

od.ifPresent(average -> {
   System.out.println(average);
});

DoubleStream имеет метод усреднения, который вычисляет среднее значение типа double в массиве и возвращает OptionalDouble. OptionalDouble возвращается, если среднее значение не возвращается, например, если вы отправляете пустой массив, вы не должны возвращать 0, потому что 0 по-прежнему число. С помощью OptionalDouble вы проверяете, присутствует ли среднее значение, и если это так, вы можете получить его с помощью optionalDouble.get(); или метод, который я использовал.

Вы можете использовать этот объект DoubleStream внутри вашего метода averageTemp. Измените переменную double final = ...; что-то вроде double average = ...;


Есть идеи?

10000