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

Java中字符串ArrayList按三元素分组计算最小乘积的实现问题

解决方案

你可以通过两种方式实现需求,都不需要嵌套循环,单循环即可完成所有分组处理:

  • 先创建一个新的整数列表存储最终结果
  • 分组处理逻辑完全匹配你给出的计算规则,输出结果和示例一致

方案1:步长为3的普通for循环(推荐,索引逻辑清晰)

直接替换你原来的for (String st : purgedList)代码块即可:

// 存储最终输出结果
List<Integer> resultList = new ArrayList<>();
// 每次循环步进3,刚好对应每组3个元素
for (int i = 0; i < purgedList.size(); i += 3) {
    // 边界判断:剩余元素不足3个时跳过,避免索引越界
    if (i + 2 >= purgedList.size()) {
        break;
    }
    // 字符串转整数
    int a = Integer.parseInt(purgedList.get(i));
    int b = Integer.parseInt(purgedList.get(i + 1));
    int c = Integer.parseInt(purgedList.get(i + 2));
    // 计算三个两两乘积
    int p1 = a * b;
    int p2 = a * c;
    int p3 = b * c;
    // 取最小值存入结果,也可替换为你想用的Collections.min写法:Collections.min(Arrays.asList(p1,p2,p3))
    int minProduct = Math.min(Math.min(p1, p2), p3);
    resultList.add(minProduct);
}
// 验证输出
System.out.println(resultList);

方案2:增强for循环实现(适配你原有的循环写法)

如果你不想修改原有增强for循环的结构,可以用临时列表攒够3个元素就处理一次:

List<Integer> tempGroup = new ArrayList<>();
List<Integer> resultList = new ArrayList<>();
for (String st : purgedList) {
    tempGroup.add(Integer.parseInt(st));
    // 凑齐3个元素就计算最小值
    if (tempGroup.size() == 3) {
        int p1 = tempGroup.get(0) * tempGroup.get(1);
        int p2 = tempGroup.get(0) * tempGroup.get(2);
        int p3 = tempGroup.get(1) * tempGroup.get(2);
        resultList.add(Math.min(Math.min(p1, p2), p3));
        // 清空临时列表存下一组
        tempGroup.clear();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:27:04