Java 删除字符串-在线购物车
我对stackoverflow不太熟悉,所以请友好一点!本部分准则的目标是: removeItem() -从cartItems数组中删除项。具有字符串(项目名称)参数。不返回任何内容。 -如果找不到商品名称,则输出此消息:购物车中找不到商品。什么也没拿走 以下是我到目前为止的情况:Java 删除字符串-在线购物车,java,Java,我对stackoverflow不太熟悉,所以请友好一点!本部分准则的目标是: removeItem() -从cartItems数组中删除项。具有字符串(项目名称)参数。不返回任何内容。 -如果找不到商品名称,则输出此消息:购物车中找不到商品。什么也没拿走 以下是我到目前为止的情况: public void removeItem(String itemName){ if(count!=0) count--; int index=-1
public void removeItem(String itemName){
if(count!=0)
count--;
int index=-1;
if (cartItems.length!=0) {
for(int i = 0; i<count; i++)
{
if(cartItems[i].getName().equals(itemName))
{
index=index-i;
break;
}
}}
if(index==-1)
{
System.out.println("Item not found in cart. Nothing removed.");
}
}
public void removietem(String itemName){
如果(计数!=0)
计数--;
int指数=-1;
如果(cartItems.length!=0){
for(inti=0;iJava中的数组具有固定大小。
假设您的列表是[“轮子”、“引擎”、“窗口”],大小为3。
如果你想删除“engine”,你会找到“engine”的索引(这里是1)
然后在发动机熄火后把所有东西移到一个地方,给你:[“轮子”,“窗户”,“窗户”]尺寸为2
您将拥有一个变量(size),用于跟踪列表的大小,当您删除某个项目时,该变量将减小一。如果有人试图访问索引大于或等于列表大小的项目,则您将抛出一个错误
如果您想再次添加引擎,只需执行list[size]=“engine”,然后将size变量增加1。
(例如:列表[大小]=“引擎”;大小++)列表现在是[“轮子”、“窗口”、“引擎”],大小现在是3
现在假设您想将另一部分添加到列表中。大小现在为3,但数组中没有更多空间来放置新项
当有人试图在数组已满时添加项目时,您可以创建一个新的较大数组(通常是原始数组的1.5倍),然后将旧数组中的所有项目复制到该数组中,并将新项目插入该数组,然后用新的较大数组替换旧数组
您可以自己花时间来实现所有这些,也可以使用已经存在的ArrayList类,它完全符合我所描述的:
List<String> carItems = new ArrayList<>();
carItems.add("wheel");
carItems.add("engine");
carItems.add("window");
砰的一声,它消失了
您也不必担心填充数组,因为当您向数组中添加新项时,它会自动展开:
carItems.add("door");
您可以使用以下方式获取项目:
carItems.get(i);
如果您对此有任何问题,请随时提问
(编辑)
刚才注意到您存储的是一个CarItem数组,而不是字符串。在这种情况下,您可以使用数组实现我上面所述的内容,但不是存储字符串,而是存储CarItem并用需要删除的内容的名称搜索CarItem,或者使用HashMap
HashMap类似于ArrayList,只是其中的项目是由键而不是索引寻址的。您可能需要以下内容:
Map<String, CarItem> carItems = new HashMap<>();
要移除名为carItem的carItem,请执行以下操作:
carItem.remove("engine");
例如,Java中的数组具有固定大小。
假设您的列表是[“轮子”、“引擎”、“窗口”],大小为3。
如果你想删除“engine”,你会找到“engine”的索引(这里是1)
然后在发动机熄火后把所有东西移到一个地方,给你:[“轮子”,“窗户”,“窗户”]尺寸为2
您将拥有一个变量(size),用于跟踪列表的大小,当您删除某个项目时,该变量将减小一。如果有人试图访问索引大于或等于列表大小的项目,则您将抛出一个错误
如果您想再次添加引擎,只需执行list[size]=“engine”,然后将size变量增加1。
(例如:列表[大小]=“引擎”;大小++)列表现在是[“轮子”、“窗口”、“引擎”],大小现在是3
现在假设您想将另一部分添加到列表中。大小现在为3,但数组中没有更多空间来放置新项
当有人试图在数组已满时添加项目时,您可以创建一个新的较大数组(通常是原始数组的1.5倍),然后将旧数组中的所有项目复制到该数组中,并将新项目插入该数组,然后用新的较大数组替换旧数组
您可以自己花时间来实现所有这些,也可以使用已经存在的ArrayList类,它完全符合我所描述的:
List<String> carItems = new ArrayList<>();
carItems.add("wheel");
carItems.add("engine");
carItems.add("window");
砰的一声,它消失了
您也不必担心填充数组,因为当您向数组中添加新项时,它会自动展开:
carItems.add("door");
您可以使用以下方式获取项目:
carItems.get(i);
如果您对此有任何问题,请随时提问
(编辑)
刚才注意到您存储的是一个CarItem数组,而不是字符串。在这种情况下,您可以使用数组实现我上面所述的内容,但不是存储字符串,而是存储CarItem并用需要删除的内容的名称搜索CarItem,或者使用HashMap
HashMap类似于ArrayList,只是其中的项目是由键而不是索引寻址的。您可能需要以下内容:
Map<String, CarItem> carItems = new HashMap<>();
要移除名为carItem的carItem,请执行以下操作:
carItem.remove("engine");
例如当然不会删除任何内容。您所做的只是index=index-i
。您希望如何删除该内容?我的建议是使用类似列表或集合的集合,并避免使用数组。那么我应该如何做呢?抱歉,我只是非常困惑..避免数组?我从未在课堂上学会如何使用集合;我知道我不认为我可以使用MethodArray,因为它实际上不能被修改。你需要使用一个合适的Java集合。当然,没有任何东西会被删除。你所做的只是index=index-I
。你希望如何删除它?我的建议是使用一个类似列表或集合的集合,并避免使用数组。那么我应该如何处理d正在使用它?对不起,我只是很困惑..避免数组?我从来没有学会如何在类中使用集合;我认为我不能使用MethodArray不能真正修改到位的方法。您将希望使用适当的Java集合。