gpt4 book ai didi

java - IntStream平均打印结果

转载 作者:搜寻专家 更新时间:2023-10-31 19:59:31 27 4
gpt4 key购买 nike

我目前正在学习流,并使用 .average 函数计算使用扫描器输入的一些整数的平均值。我遇到的问题是如何格式化输出,这样它就不会说 optional double。

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class ClassAverage {

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
List<Integer> grades = new ArrayList<Integer>();

while (scan.hasNextInt()) {
grades.add(scan.nextInt());

if (scan.equals("end")) {
{
break;
}

}
grades.forEach(System.out::println);

}

System.out.println("" + grades.stream()
.mapToInt(Integer::intValue)
.average());

}
}

这是我得到的输出

 OptionalDouble[88.0]

最佳答案

average()返回 OptionalDouble对象,而不是 double

如果您要对结果执行单个操作,例如打印结果,您可以使用 ifPresent​(DoubleConsumer) :

grades.stream()
.mapToInt(Integer::intValue)
.average()
.ifPresent(System.out::println);

否则,

OptionalDouble optionalAverage = grades.stream()
.mapToInt(Integer::intValue)
.average();

if (optionalAverage.isPresent()) {
double average = optionalAverage.getAsDouble();
System.out.println(average);
}

关于java - IntStream平均打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52582680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com