Увеличение значения на карте (JAVA) - PullRequest
1 голос
/ 23 марта 2012

У меня проблема с этим домашним заданием. Я могу обработать синтаксис, но не логику. Не могли бы вы дать мне несколько советов.

Я пытаюсь добиться того, чтобы метод add увеличил количество продуктов, используя метод увеличения. Теперь он сбрасывает значение количества в «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);

Конструктор продукта:

public Ostos(String product, int amount, int price) {

Код метода увеличения количества:

private int amount;

public void increaseAmount() {
    this.amount = (this.amount + 1);

Ответы [ 2 ]

6 голосов
/ 23 марта 2012

Не создавайте новую покупку вначале, создавайте ее, только если ее еще нет

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);
        }
1 голос
/ 23 марта 2012

Вы должны извлечь значение из shoppingCart, а затем увеличить сумму.Вы никогда не звоните shoppingCart.get, поэтому вы заменяете значение каждый раз вслепую put, добавляя новый объект покупки на карту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...