【发布时间】:2021-08-02 17:54:12
【问题描述】:
我正在用 Java 为“硬件商店”构建一个简化的库存程序。我想按名称和数量将商品注册到一个数组中,如果商品售出,我还想删除或更改数量。
我相信我已经完成了 80% 的工作。我只是不知道如何在存储后删除或更改对象。这与equals(Object obj) 方法有关吗?我发现很难理解如何在我的案例中使用该方法。
硬件项目的类别:
public class Items {
private String item;
private String quantity;
public Items(){
}
public String getName() {
return item;
}
public String getType() {
return item;
}
public String getQuantity() {
return quantity;
}
public void setItem(String item) {
this.item=item;
}
public void setQuantity(String quantity) {
this.quantity=quantity;
}
}
--
public class Hardware {
public static void main(String[] args) {
List<Items> allItems =new ArrayList<Items>();
Scanner input = new Scanner(System.in);
int choice;
while(true){
System.out.println("Inventory\n");
System.out.print("1.) Add new items to your inventory. \n");
System.out.print("2.) Delete items from your inventory.\n");
System.out.print("3.) Change quantity of an item.\n");
System.out.print("6.) Exit\n");
System.out.print("\nEnter Your Menu Choice: ");
choice = input.nextInt();
Scanner in = new Scanner(System.in);
switch(choice){
case 1:
Items myItems = new Items();
System.out.println("Item:");
myItems.setItem(in.nextLine());
System.out.println("Quantity?");
myItems.setQuantity(in.nextLine());
allItems.add(myItems);
System.out.println(allItems);
System.out.println("The inventory contains the following items:");
for(int i = 0; i < allItems.size(); i++) {
System.out.println(allItems.get(i).getName());
}
break;
case 6:
System.out.println("Exiting Program...");
System.exit(0);
break;
default :
System.out.println("This is not a valid Menu Option! Please Select Another");
break;
}
}
}
}
【问题讨论】:
-
你甚至不需要equals,但它可以让你的代码更简单。只需遍历您的项目并尝试找到具有用户输入名称的项目。
-
您必须将 allItems 传输到某个方法,该方法会从中删除所需的项目。说,你必须声明一些方法
deleteSpecificItem(List<Items> allItems, string itemName)然后声明新方法replaceSpecificItemInList(List<Items> allItems, string itemName, Items newItem)
标签: java oop arraylist methods