You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何计算TreeSet内Expense对象的金额总和?

解决TreeSet中Expense对象金额求和问题

你的set1.addAll([1])用法完全错误,addAll()是用来向集合批量添加元素的方法,和计算总和毫无关系。以下是几种正确的总支出计算方式:

方式1:增强for循环遍历累加

直接遍历TreeSet里的每个Expense对象,逐个累加金额:

double totalExpense = 0.0;
for (Expense expense : set1) {
    totalExpense += expense.getAmount(); // 假设Expense类有getAmount()方法获取金额属性
}
System.out.println("总支出:" + totalExpense);

方式2:Java 8+ Stream API简化实现

用流操作可以更简洁地完成求和:

double totalExpense = set1.stream()
                          .mapToDouble(Expense::getAmount)
                          .sum();
System.out.println("总支出:" + totalExpense);

补充说明

  • 确保你的Expense类已正确实现排序逻辑(因为TreeSet依赖排序),比如按金额降序的示例实现:
public class Expense implements Comparable<Expense> {
    private String category;
    private double amount;

    // 构造方法、getter/setter方法省略

    @Override
    public int compareTo(Expense other) {
        // 按金额降序排列
        return Double.compare(other.getAmount(), this.getAmount());
    }
}
  • 若你是通过自定义比较器创建的TreeSet,只需保证排序逻辑符合需求即可,遍历求和不受排序顺序影响。

内容的提问来源于stack exchange,提问作者Tharun S M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:07:46