gpt4 book ai didi

java - 项目未正确添加到 arrayList

转载 作者:行者123 更新时间:2023-12-02 09:56:35 25 4
gpt4 key购买 nike

所以我现在正在做的事情应该非常简单。我正在将一个项目添加到 Arraylist ,并且如果该项目的名称等于 Arraylist 中另一个项目的名称,它会删除其中一项,只将 numItem 值添加到另一项。例如,如果玩家购买“枪支”,并且 numItem 变量设置为 1500,则会将其添加到数组列表中。如果他们再次输入“guns”,并且 numItem 为 2500,我想删除 arrayList 中的一个元素,并将剩余的 numItem 设置为 4000。

public void addItem(Item item)
{
for(int i = 0; i < this.ownedItems.size(); i++)
{
if(item.getName() == this.ownedItems.get(i).getName())
{
item.setNumItem(item.getNumItem() + this.ownedItems.get(i).getNumItem());
this.ownedItems.remove(this.ownedItems.get(i));
}
}
this.ownedItems.add(item);
}

最佳答案

嘿,你没有标记你正在编程的语言,但我假设你使用 java。如果您更改字符串比较,您的代码应该可以解决问题。

如果您通过声明 string1 == string2 来比较字符串,事情将不会按照您期望的方式进行。而是使用 string1.equals(string2)

您应该阅读字符串比较:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#equals(java.lang.Object)

How do I compare strings in Java?

如果您使用 C#,我认为相同的原则或多或少成立:

C# difference between == and Equals()

所以改变

if(item.getName() == this.ownedItems.get(i).getName())

进入

if(item.getName().equals(this.ownedItems.get(i).getName()))

关于java - 项目未正确添加到 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55962716/

25 4 0