java arraylist 对象 删除_java – 如何从ArrayList中正确删除对象?

我正在尝试从ArrayList中删除一个对象.每个Item对象都有3个属性; 1. itemNum 2. info 3.成本.我还有3个类,1.Item类定义存储在目录中的单个项. 2. Catalog类维护Item对象的列表. 3客户端类w / main方法.

我有集合并获取Item类,我在Catalog中有ArrayList.在客户端,我有一个提示“输入itemNum删除.如何根据搜索itemNum从ArrayList中正确删除Item对象?下面是我的代码以及到目前为止我尝试过的内容.

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的set / gets.我也有成本和信息的设置/获取,但选择不包括做空间

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 listOfObjects = new ArrayList(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,info和cost的输入

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值