增加地图中的值(JAVA)

Mar*_*ark 1 java map

我的家庭工作任务有问题.我可以处理语法,但不能处理逻辑.你能给我一些提示吗?

我想要实现的是add方法会通过使用increaseAmount方法增加产品数量.现在,每次调用方法时,它都会将amount的值重置为"1".使这复杂化的原因是我不允许使用除已使用的任何其他私有变量.

private Map<String, Purchase> shoppingCart = new HashMap<String, Purchase>();

public void add (String product, int price) {
        Purchase purchase = new Purchase (product, 1, price); 
                  //the line abowe returns the value back to 1 which I don't want.

        if(shoppingCart.containsKey(product)) {

            shoppingCart.put(product, purchase);
                purchase.increaseAmount();

        }
        else {
             shoppingCart.put(product, purchase);
Run Code Online (Sandbox Code Playgroud)

产品构造函数:

public Ostos(String product, int amount, int price) {
Run Code Online (Sandbox Code Playgroud)

increaseAmount方法的代码:

private int amount;

public void increaseAmount() {
    this.amount = (this.amount + 1);
Run Code Online (Sandbox Code Playgroud)

twa*_*249 6

不要在开始时创建新的购买,只有在它尚未存在的情况下创建它

public void add (String product, int price) {

        if(shoppingCart.containsKey(product)) {
            Purchase purchase = shoppingCart.get(product);
            purchase.increaseAmount();
            //You might have to put the purchase back into the cart I'm not sure
        }
        else {
             Purchase purchase = new Purchase (product, 1, price);
             shoppingCart.put(product, purchase);
        }
Run Code Online (Sandbox Code Playgroud)