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

如何在PurchaseOrder类中实现查找ArrayList中最贵商品的方法

Java PurchaseOrder类findMostExpensiveProduct方法实现方案

现有方法存在的问题

  • 返回值类型不符合需求:需求要求返回最贵的商品对象,你当前定义的返回值为double(仅返回价格)
  • 入参多余:方法无需外部传入商品列表,直接读取PurchaseOrder类的成员变量products即可

修正后的实现代码

直接替换你现有未完成的方法即可:

// 修正方法签名:返回Product类型,无入参
public Product findMostExpensiveProduct() {
    // 处理空列表边界情况,避免空指针异常
    if (products == null || products.isEmpty()) {
        return null;
        // 如果业务要求空列表需报错,可替换为下方抛出异常的代码
        // throw new IllegalStateException("商品列表为空,无法查找最贵商品");
    }
    Product mostExpensive = products.get(0);
    for (Product product : products) {
        // 逐个比对价格,价格更高则更新最贵商品记录
        if (product.getPrice() > mostExpensive.getPrice()) {
            mostExpensive = product;
        }
    }
    return mostExpensive;
}

逻辑说明

  • 边界校验优先:提前处理商品列表为空的场景,避免运行时空指针报错
  • 遍历逻辑:默认取第一个商品为初始最贵商品,遍历全量商品逐个比对,价格更高就替换记录
  • 多同价最贵商品的场景下,默认返回列表中第一个出现的最高价格商品

内容的提问来源于stack exchange,提问作者is89r

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:09:00