在Java中如何实现购物清单自动汇总

定义Item类封装商品信息,包含名称、单价、数量及总价计算方法;2. 使用ArrayList存储多个商品对象;3. 遍历列表累加每项总价实现自动汇总,可选用Stream API简化计算;4. 结构清晰易扩展,支持后续添加折扣、分类统计等功能。

在Java中实现购物清单自动汇总,核心是通过对象封装商品信息,利用集合存储数据,并对价格进行累加计算。关键在于结构清晰、代码可扩展,适合后续添加折扣、分类统计等功能。

定义商品类(Item)

每个商品应包含名称、单价和数量。创建一个简单的POJO类来表示商品项。

示例:

public class Item {
    private String name;
    private double price;  // 单价
    private int quantity;
public Item(String name, double price, int quantity) {
    this.na

me = name; this.price = price; this.quantity = quantity; } public double getTotal() { return price * quantity; } // getter 方法(toString 可选) public String getName() { return name; } public double getPrice() { return price; } public int getQuantity() { return quantity; } @Override public String toString() { return name + " × " + quantity + " = ¥" + String.format("%.2f", getTotal()); }

}

使用List存储购物清单

用ArrayList保存多个商品,便于动态增删和遍历。

import java.util.ArrayList;
import java.util.List;

List shoppingList = new ArrayList<>(); shoppingList.add(new Item("苹果", 5.5, 3)); shoppingList.add(new Item("牛奶", 12.0, 2)); shoppingList.add(new Item("面包", 8.0, 1));

自动汇总总价

遍历列表,调用每个商品的getTotal方法,累加得到总金额。

double totalAmount = 0.0;
for (Item item : shoppingList) {
    System.out.println(item);  // 打印每项明细
    totalAmount += item.getTotal();
}
System.out.println("总计:¥" + String.format("%.2f", totalAmount));

如果想更简洁,也可以使用Java 8的Stream API:

double total = shoppingList.stream()
    .mapToDouble(Item::getTotal)
    .sum();

基本上就这些。结构简单,易于维护,后续可以加入类别、优惠券、税率等逻辑扩展功能。