stream double类型累加
时间: 2023-11-02 09:07:49 浏览: 47
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方法对其进行累加求和,并输出结果。
相关问题
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 值进行累加,最后输出累加结果。
list.stream先分组,然后累加某字段金额
可以使用Java 8的stream API来实现这个功能。假设我们有一个包含多个对象的List,每个对象包含一个金额字段和一个分类字段,我们可以按照分类字段进行分组,然后对每组进行金额字段的累加。
具体实现代码如下:
```java
Map<String, Double> result = list.stream()
.collect(Collectors.groupingBy(
Object::getCategory, // 分组条件
Collectors.summingDouble(Object::getAmount) // 累加金额
));
```
其中,Object是我们自定义的对象,getCategory和getAmount分别是获取分类和金额的方法。上述代码会返回一个Map,其中键是分类字段的值,值是该分类下所有对象的金额字段累加和。
需要注意的是,这里使用了Java 8新增的Collectors.summingDouble方法来对金额字段进行累加。如果金额字段是整型的话,需要使用Collectors.summingInt方法。