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

Java自定义购物车开发中对象数组前序条目覆盖后续条目问题排查

问题根因

  • 遍历逻辑错误:addItems方法中遍历已存商品的循环条件写死为i < 1,永远只会检查购物车第一个商品,无法适配多商品的重复校验场景。
  • 计数逻辑错误:numOfItem自增代码放在了添加判断逻辑外部,无论商品是否添加成功(重复/满仓)都会计数+1,导致购物车商品计数、存储位置全部错位。
  • 满仓判断逻辑完全失效:当前代码判断i > CAPACITY永远不会触发,无法正确识别购物车满的状态。

修复方案

直接修改ShoppingCart.java中的addItems方法即可,全程只用数组操作,符合作业要求,修复后代码如下:

public void addItems(ItemToPurchase item) {
    // 先校验购物车是否已满
    if (numOfItem >= CAPACITY) {
        System.out.println("SHOPPING CART IS FULL.");
        return;
    }
    boolean existFlag = false;
    // 遍历所有已添加的商品校验重复
    for (int i = 0; i < numOfItem; i++) {
        if (cartItems[i].getName().equals(item.getName())) {
            System.out.println("SHOPPING CART ALREADY EXISTS.");
            existFlag = true;
            break;
        }
    }
    // 无重复才执行添加,只有添加成功才更新计数
    if (!existFlag) {
        cartItems[numOfItem] = item;
        numOfItem++;
    }
}

修复后即可同时覆盖商品重复、不重复两种场景,和预期输出完全一致。

内容的提问来源于stack exchange,提问作者ZW-Lam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:15:06