Member 11018842 Ответов: 1

Можно ли получить экземпляр объекта на основе поля?


У меня есть список массивов с некоторыми продуктами:

ArrayList<Products> catalog = new ArrayList<Products>();
ArrayList<Products> cartArray = new ArrayList<>();

        catalog.add(new SSD("   SSD", "red", 322, "Storage"));
        catalog.add(new Laptop("Laptop", "white", 900, "Laptops"));
        catalog.add(new Laptop("Laptop", "white", 900, "Laptops"));

Я хочу добавить в свою корзину один из объектов сверху. Пользователь должен ввести имя продукта, и у меня есть метод под названием "findProduct", который проверяет, существует ли имя продукта, введенное пользователем, в моем массиве с продуктами.
Если имя существует, то метод должен получить экземпляр объекта и добавить его в другой ArrayList под названием "cartArray". Я собираюсь опубликовать ниже метод findProduct.

Что я уже пробовал:

public void findProduct(String name, int quantity) {

      for (int i = 0; i < catalog.size(); i++) {
          if (name.equals(catalog.get(i).getName())) {
              System.out.printf("Product: %s    Quantity: %d  | Has been added in your cart.", name, quantity);
              cartArray.add =" HERE!!! I don't really know how to get the instance of the product that has the name of variable 'String name'";
              break;
          } else {
              System.out.printf("We don't have the product '%s' in our store.", name);
              break;
          }
      }

  }

Заранее благодарю вас!

1 Ответов

Рейтинг:
5

User 7429338

В вашем цикле catalog.get(i) - это экземпляр, который вы ищете.

Вы могли бы сделать что-то вроде этого:

public void findProduct(String name, int quantity) {
      for (int i = 0; i < catalog.size(); i++) {
          if (name.equals(catalog.get(i).getName())) {
              System.out.printf("Product: %s    Quantity: %d  | Has been added in your cart.", name, quantity);
              cartArray.add(catalog.get(i));
              return;
          }
      }
      System.out.printf("We don't have the product '%s' in our store.", name);
  }


CPallini

5.

Member 11018842

Большое спасибо! Я каждый раз ищу сложные решения, и решение моей проблемы обычно довольно простое. ;))