java stream 列表求和
时间: 2023-10-14 22:26:12 浏览: 23
可以使用Java 8的Stream API对列表中的元素求和。可以在列表的stream()方法上调用mapToInt()方法将元素映射为int类型,再调用sum()方法求和。示例代码如下:
```
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().mapToInt(Integer::intValue).sum();
System.out.println("Sum of the list elements: " + sum);
```
上面的代码会输出 "Sum of the list elements: 15",它会将numbers列表里的元素求和。
相关问题
Java stream分组求和
可以使用Java 8中的流(Stream)对数据进行分组求和操作。下面是一个示例代码:
假设有一个包含若干订单信息的列表,每个订单信息包含商品名称和数量两个字段,现在需要对商品名称进行分组,然后计算每个商品名称对应的总数量。
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Order> orders = Arrays.asList(
new Order("apple", 2),
new Order("banana", 3),
new Order("apple", 1),
new Order("orange", 4),
new Order("banana", 2),
new Order("orange", 1)
);
Map<String, Integer> result = orders.stream()
.collect(Collectors.groupingBy(Order::getName, Collectors.summingInt(Order::getQuantity)));
System.out.println(result);
}
}
class Order {
private String name;
private int quantity;
public Order(String name, int quantity) {
this.name = name;
this.quantity = quantity;
}
public String getName() {
return name;
}
public int getQuantity() {
return quantity;
}
}
```
输出结果为:
```
{orange=5, banana=5, apple=3}
```
其中,`groupingBy`方法根据商品名称对订单信息进行分组,`summingInt`方法计算每个分组中订单数量的总和。最终得到一个Map对象,其中键为商品名称,值为对应的总数量。
java stream流求和
要使用Java Stream流对元素求和,可以使用`sum()`方法。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().mapToInt(Integer::intValue).sum();
System.out.println("Sum: " + sum);
}
}
```
在上述示例中,我们首先创建了一个包含整数的列表。然后,我们使用`stream()`方法将列表转换为流。接下来,我们使用`mapToInt()`方法将流中的元素映射为整数。最后,我们调用`sum()`方法对整数流中的元素求和,并将结果存储在变量`sum`中。最后,我们打印出求和结果。
以上代码的输出将是:
```
Sum: 15
```
请注意,在使用`sum()`方法之前,我们使用`mapToInt()`方法将流中的元素映射为整数。这是因为`sum()`方法仅适用于`IntStream`、`LongStream`和`DoubleStream`类型的流。
阅读全文