gpt4 book ai didi

java - 添加到数组列表

转载 作者:行者123 更新时间:2023-11-29 07:08:30 25 4
gpt4 key购买 nike

我是 Java 新手..但我相信我可以非常有效地完成这项工作。

此方法的目的是为产品添加一个唯一的 Id。如果我将产品重复,我应该抛出异常。好吧,这个序列不适用于多线程环境。

public void addProduct(Product product)
throws ProductAlreadyExistsException {
product.id = ++nextId;
this.id = product.id;

Iterator<Product> it = allProducts.iterator();
Product p= null;

boolean flag= false;
if (!allProducts.isEmpty()) {
while(it.hasNext()){
p= it.next();
if ( p.getName() == product.getName())
throw new ProductAlreadyExistsException(p.getName());
else
flag = true;
}

}
else
allProducts.add(product.id-1, product);

if(flag){
allProducts.add(product.id-1, product);
}
}

我想要的是这样的。

    for (Product p : allProducts) {
if (p.getName() == product.getName() ) {
throw new ProductAlreadyExistsException(p.getName());
}
allProducts.add(p);
}
}

这是行不通的。谢谢你指导我..

最佳答案

在 Java 中,您使用 s1.equals(s2) 方法来判断两个字符串是否相等。

 if ( p.getName() == product.getName()) // This will always return false, because references are compared here

你应该做的是:

if ( p.getName().equals(product.getName()) )

注意:我假设 getName() 返回一个字符串。

关于java - 添加到数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16869774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com