Java 删除字符串-在线购物车

Java 删除字符串-在线购物车,java,Java,我对stackoverflow不太熟悉,所以请友好一点!本部分准则的目标是: removeItem() -从cartItems数组中删除项。具有字符串(项目名称)参数。不返回任何内容。 -如果找不到商品名称,则输出此消息:购物车中找不到商品。什么也没拿走 以下是我到目前为止的情况: public void removeItem(String itemName){ if(count!=0) count--; int index=-1

我对stackoverflow不太熟悉,所以请友好一点!本部分准则的目标是: removeItem() -从cartItems数组中删除项。具有字符串(项目名称)参数。不返回任何内容。 -如果找不到商品名称,则输出此消息:购物车中找不到商品。什么也没拿走

以下是我到目前为止的情况:

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集合。