Как я могу правильно удалить объект из ArrayList?

Я пытаюсь удалить объект из ArrayList. Каждый объект Item имеет 3 атрибута; 1. itemNum 2. информация 3. стоимость. У меня также есть 3 класса, 1. Класс предметов определяет отдельные предметы, хранящиеся в каталоге. 2. Класс каталога поддерживает список объектов Item. 3 Клиентский класс с основным методом. У меня есть наборы и получает в классе Item, и у меня есть ArrayList в каталоге. В клиенте у меня появляется запрос «Введите в itemNum для удаления. Как правильно удалить объект Item из ArrayList на основе поиска itemNum? Ниже мой код и то, что я пробовал до сих пор.

 Public class Item 
 {
 private int itemNum;
  private String info;
  private double cost;
  private int itemNum;


   public Item()
  {   //start constructor
     itemNum = 0;   //default values
     info = "x";
     cost = 0;
  }   //end constructor


 public CatalogItem(int newItemNum, String newInfo, double newCost)
  {   //start overload constructor
     this.itemNum = newItemNum;
     this.info = newInfo;
     this.cost = newCost;
  }   //end overload constructor

// ниже набор / получает для itemNum. У меня также есть наборы / бонусы для стоимости и информации, но я решил не включать do в пространство

  public int getItemNum()
  {   //start itemNum accessor
     return itemNum;

  }   //end getItemNum

  public void setItemNum(int newItemNum)
  {   //start itemNum mutator
     this.itemNum = newItemNum;
  }   //end setItemNum
  }   //end Item class

  public boolean equals(CatalogItem obj)
  {   //start equals
     if (itemId == obj.itemId)
        return true;
     else
        return false;
  }   //end equals

// ниже мой класс каталога

 import java.util.*;

  public class Catalog
 {   //start class
  private ArrayList<CatalogItem> listOfObjects = new ArrayList<CatalogItem>(100);   //creates ArrayList
  Item newItem = new Item(newItemNum, newInfo, newCost);   

  public void remove(int id)
  {   //start remove
     int item = id;

     for (int index = 0; index < listOfObjects.size();        index++)
        if (newItem.getItemId() == item)   //if item in the inventory matches the item number passed  
        listOfObjects.remove(index);  //removes based on index, I’ve also tried listOfObjects.remove(item);

   /*   I’ve also tried an enhanced for loop
     for (CatalogItem obj : listOfObjects)
        if (newItem.getItemId() == item)
           listOfObjects.remove(newItem);         */


  }   //end remove

}

// ниже главное. Он получает информацию от пользователя относительно itemNum, информации и стоимости.

 import java.util.*;   //allows use of Scanner class

   public class Client
  {   //start client class

  public static void main(String[] args)
  {   //start main
     Catalog serv = new Catalog();   //creates instance of Catalog class
     Scanner scan = new Scanner(System.in);   //creates instance of Scanner class called scan
              System.out.print("\nEnter in the Item ID you want to remove: ");  
              id = scan.nextInt();
              serv.remove(id);   //sends id to Catalog Class to be removed
 }   //end main
 }   //end class

Компилируется нормально, но не удаляется на основе найденного индекса. Любая помощь будет отличной.

Ответы на вопрос(0)

Ваш ответ на вопрос