stream double类型累加
时间: 2023-11-02 11:07:49 浏览: 91
stream可以使用mapToDouble方法将流中的元素转换为double类型,然后使用sum方法对其进行累加求和。具体实现可以参考以下代码:
```
List<Double> list = Arrays.asList(1.2,2.3, 3.4);
double sum = list.stream().mapToDouble(Double::doubleValue).sum();
System.out.println(sum);
```
以上代码将列表中的元素转换为double类型,然后使用sum方法对其进行累加求和,并输出结果。
相关问题
stream流累加多个字段值
在Java中,Stream API提供了一种高效的方式来处理集合数据,包括累加多个字段的值。当你需要对每个元素的多个属性求和、平均或其他操作时,可以使用`mapToDouble`、`mapToInt`等函数将每个元素转换成double或int类型的值,然后用`sum`、`average`等方法计算总和或平均。
例如,假设有一个Person对象列表,每个Person有age和salary两个数值字段,你可以这样做:
```java
List<Person> people = ...; // 假设Person类有age和salary属性
Optional<Double> totalSalaryAndAge = people.stream()
.mapToDouble(Person::getSalary)
.mapToDouble(p -> p + Person::getAge) // 对每个person的salary和age相加
.sum();
// 或者直接计算平均值
double averageSum = people.stream()
.mapToInt(Person::getSalary)
.mapToInt(p -> p + Person::getAge)
.average().orElse(Double.NaN); // 如果列表为空,返回NaN
```
这里我们使用了`mapToDouble`先将每个人的薪水和年龄转换为double,然后通过lambda表达式`p + Person::getAge`组合这两个值。最后,`sum()`或`average()`分别用于计算累加后的总数或平均值。
Java流获取对象double值并累加返回结果
可以使用 Java 8 的流操作来获取对象 double 值并累加返回结果,代码如下:
```java
List<Double> numbers = Arrays.asList(1.1, 2.2, 3.3, 4.4, 5.5);
double sum = numbers.stream()
.mapToDouble(Double::doubleValue)
.sum();
System.out.println(sum);
```
这段代码首先创建了一个包含 double 值的列表 numbers,然后使用流操作将其转换为包含 Double 值的流,接着使用 mapToDouble 方法将 Double 值转换为 double 值,并使用 sum 方法对 double 值进行累加,最后输出累加结果。
阅读全文