gpt4 book ai didi

java - Java流问题,mapToInt和平均值方法

转载 作者:行者123 更新时间:2023-12-01 11:29:46 30 4
gpt4 key购买 nike

为什么我可以在一个方法上调用average()方法而不在另一个方法上调用?它们不应该等效吗?

示例1-作品

List<String> stringList = new ArrayList<>();
stringList.add("2");
stringList.add("4");
stringList.add("6");
// String array ("2","4", "6"
averageValue = stringList.stream()
.mapToInt(s -> Integer.valueOf(s))
.average()
.getAsDouble();

示例2-不编译(由于已经传递Integer流而删除了mapToInt调用)
List<Integer> IntegerList = new ArrayList<>();
IntegerList.add(2);
IntegerList.add(4);
IntegerList.add(6);

averageValue = IntegerList.stream()
.average()
.getAsDouble();

问题,当Im已经将其传递给Integers流时,为什么需要调用mapToInt方法?

最佳答案

有两种不同的类型:Stream<Integer>IntStream

Java的泛型不能具有仅适用于某些泛型的方法。例如,即使普通人的名字没有意义,它也不能带有Stream<Integer>.average(),也不能带有Stream<PersonName>.average()

因此,Stream具有mapToInt方法,可将其转换为IntStream,然后提供average()方法。

关于java - Java流问题,mapToInt和平均值方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61046441/

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