Java 从ArrayList中删除/更改特定对象
我正在用Java为“硬件商店”构建一个简化的库存程序。我想按名称和数量将商品注册到一个数组中,如果商品售出,还需要删除或更改数量 我相信我已经完成了80%的工作。我就是不知道如何删除或更改存储后的对象。这与Java 从ArrayList中删除/更改特定对象,java,oop,arraylist,methods,Java,Oop,Arraylist,Methods,我正在用Java为“硬件商店”构建一个简化的库存程序。我想按名称和数量将商品注册到一个数组中,如果商品售出,还需要删除或更改数量 我相信我已经完成了80%的工作。我就是不知道如何删除或更改存储后的对象。这与equals(objectobj)方法有关吗?我发现很难理解如何在我的案例中使用这种方法 硬件项的类: public class Items { private String item; private String quantity; public Items()
equals(objectobj)
方法有关吗?我发现很难理解如何在我的案例中使用这种方法
硬件项的类:
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;
}
}
--
公共类硬件{
公共静态void main(字符串[]args){
List allItems=new ArrayList();
扫描仪输入=新扫描仪(System.in);
智力选择;
while(true){
System.out.println(“库存\n”);
System.out.print(“1”)将新项目添加到您的库存中。\n“;
System.out.print(“2”)从库存中删除项目。\n“;
系统输出打印(“3”)更改项目的数量。\n“;
系统输出打印(“6.)退出\n”);
System.out.print(“\n输入菜单选项:”);
choice=input.nextInt();
扫描仪输入=新扫描仪(系统输入);
开关(选择){
案例1:
Items myItems=新项目();
系统输出打印项次(“项:”;
myItems.setItem(在.nextLine()中);
系统输出打印项次(“数量?”);
myItems.setQuantity(in.nextLine());
添加(我的项目);
系统输出打印项(allItems);
System.out.println(“库存包含以下项目:”);
对于(int i=0;i
}您应该在Items类中实现
equals
方法,如下所示:
public boolean equals(Object object){
if(this == object){
return true;
}
if(object instanceof Items){
Items newItem = (Item) object;
return item.equals(newItem.item) && quantity.equals(newItem.quantity);
}
return false;
}
然后,对于删除和更改选项,使用用户输入创建一个
项
对象,并在列表
中循环,将每个项
对象与使用用户输入创建的对象进行比较,直到找到所需的对象,然后执行必要的操作。您甚至不需要equals,但是它可以让你的代码更容易。只需循环浏览您的项目,并尝试查找具有用户输入的名称的项目。您必须将allItems传输到某个方法,该方法将从中删除所需的项目。比如说,您必须声明一些方法deleteSpecificItem(列出所有项,字符串itemName)
然后声明新方法replaceSpecificItemInList(列出所有项,字符串itemName,项目newItem)
谢谢您的回复。但是,如果创建了一个新对象,那么我还必须填写我要删除的对象的数量?for(int I=0;Istatic void deleteSpecificItem(List allItems,String itemName){Iterator iter=allItems.Iterator();while(iter.hasNext()){Items value=(Items)iter.next();if(Objects.equals(value.getName(),new String(itemName)){iter.remove();}}
请告诉我您是否是初学者。剩下的我来教你。
public boolean equals(Object object){
if(this == object){
return true;
}
if(object instanceof Items){
Items newItem = (Item) object;
return item.equals(newItem.item) && quantity.equals(newItem.quantity);
}
return false;
}