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

如何用两个ArrayList分别存储冰淇淋口味及对应售卖次数?

冰淇淋店口味售卖量统计实现(双ArrayList方案)

首先预先定义两个全局集合,两个集合的索引一一对应:

// 存储所有已录入的冰淇淋口味
private ArrayList<String> allFlavours = new ArrayList<>();
// 存储对应索引口味的累计售卖次数
private ArrayList<Integer> flavourSaleCounter = new ArrayList<>();

一、调整新增冰淇淋库存逻辑

新增冰淇淋时,判断当前口味是否已经纳入统计列表,未出现过则新增统计条目,初始售卖次数为0:

IceCream newIceCream = new IceCream();
Integer id = Console.readInt("Id: ");
String name = Console.readString("Ice cream name: ");
Float price = (float)Console.readDouble("Price: ");
String flavour = Console.readString("Flavour: ");

newIceCream.setId(id);
newIceCream.setNome(name);
newIceCream.setPreco(price);
newIceCream.setSabor(flavour);

iceCreamStock.add(newIceCream);

// 新增口味统计判断逻辑
int flavourIndex = allFlavours.indexOf(flavour);
if (flavourIndex == -1) {
    // 口味首次出现,加入统计列表
    allFlavours.add(flavour);
    flavourSaleCounter.add(0);
}

二、调整售卖冰淇淋逻辑

成功匹配到要售卖的冰淇淋后,拿到该商品的口味,找到对应统计索引后将售卖次数+1即可,同时优化原有循环逻辑避免索引异常:

Integer sellIceCream = Console.readInt("Which ice cream to sell? (id)");
boolean iceCreamExists = false;
for (int i = 0; i < iceCreamStock.size() && !iceCreamExists; i++) {
    if (iceCreamStock.get(i).getId().equals(sellIceCream)) {
        iceCreamExists = true;
        IceCream soldItem = iceCreamStock.get(i);
        soldIceCream.add(soldItem);
        iceCreamStock.remove(i);
        salesCounter++;
        System.out.println("Ice cream sold.");

        // 新增口味售卖次数统计逻辑
        int targetIndex = allFlavours.indexOf(soldItem.getSabor());
        flavourSaleCounter.set(targetIndex, flavourSaleCounter.get(targetIndex) + 1);
    }
}
if (!iceCreamExists) {
    System.out.println("Ice cream not found");
}

三、查看各口味售卖量示例

需要输出统计结果时,直接遍历两个对应集合即可:

for (int i = 0; i < allFlavours.size(); i++) {
    System.out.println("口味:" + allFlavours.get(i) + ",累计售卖:" + flavourSaleCounter.get(i) + "份");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:18:00