如何用一个数组来存储一个字符串,另一个数组来计算该字符串被使用了多少次?

How to have one array to Store a String and another to cout how many times that String was used?

我正在为一家冰淇淋店制作一个应用程序,我需要在某个时候知道售出了多少特定口味的冰淇淋。当我将冰淇淋添加到原料中时,我必须写下冰淇淋的味道,所以包含味道的 ArrayList 最初是空的。然后我需要另一个 ArrayList 来存储该口味的销售次数。我需要用两个 ArrayList 来完成,因为我还不明白 HashMap

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);

这就是我制作冰淇淋的方式。

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

我就是这样卖的。我知道我必须在程序的这两个部分的某个地方工作,只是不知道如何做。

我建议你使用数组索引来存储数组之间的关系。

flavourList = List<String>
soldList = List<Integer> //initally all 0's

每当你将冰淇淋添加到库存中时,检查冰淇淋的口味是否已经存在于数组中,如果不存在,则将冰淇淋的口味添加到列表末尾的 flavorList 中。

if flavourList.indexOf("flavour") < 0:
    flavourList.add("flavour")

现在如果口味已经存在于数组中,找到索引并转到 soldList 数组中的相同索引并将当前值递增 1。

indexOfFlavour = flavourList.indexOf("flavour")
soldList.set(indexOfFlavour, soldList.get(indexOfFlavour) + 1)