stream某一个属性 求和
时间: 2025-01-11 22:32:50 浏览: 34
### 如何在 Java Stream 中对特定属性求和
对于对象流中的某个具体字段执行求和操作,可以利用 `mapToInt` 或者其他类似的映射方法来提取该字段作为数值处理。假设有一个表示书籍的类 `Book`,其中包含价格字段 `price`:
```java
class Book {
private String title;
private int price;
public Book(String title, int price) {
this.title = title;
this.price = price;
}
public int getPrice() { return price; }
}
```
为了计算一系列书本的价格总和,可采用如下方式构建代码逻辑[^1]:
```java
import java.util.Arrays;
import java.util.List;
public class SumExample {
public static void main(String[] args) {
List<Book> books = Arrays.asList(
new Book("Title 1", 20),
new Book("Title 2", 30),
new Book("Title 3", 40));
int totalPrice = books.stream()
.mapToInt(Book::getPrice)
.sum();
System.out.println(totalPrice);
}
}
```
上述例子展示了如何创建一个列表并将之转换成流形式,接着调用 `mapToInt()` 方法指定要累加的对象属性(这里是 `Book::getPrice`),最后通过 `sum()` 函数完成实际的求和过程。
当面对更复杂的数据结构或是需要累积不同类型的数值时,则可能需要用到 `reduce()` 方法来进行更加灵活的操作。不过针对简单的整数型或其他基础数据类型的求和任务来说,直接运用 `mapToInt().sum()` 是最简洁有效的方式之一。
阅读全文
相关推荐

















