android 如何避免在数组列表中添加相同的项?[已关闭]

o4hqfura  于 2023-04-28  发布在  Android
关注(0)|答案(1)|浏览(161)

已关闭,此问题需要更focused,目前不接受回答。
**要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

2小时前关闭
Improve this question
在我的项目中有一个名为Product的POJO,它包含productName(String),costPrice(int),sellingPrice(int)等字段。
我正在扫描一个条形码,并将结果编号放入Product的productName字段。

Product product = new Product(UPC, 20,10);

现在,我把这个“产品”POJO放在一个数组列表中。我不想一次又一次地添加具有相同productName(即相同条形码号)的产品。

if (arraylist.contains(product)) {
    Toast.makeText(getContext(), "Product already exists", Toast.LENGTH_SHORT).show();
} else {
    arraylist.add(product);
    adapter.notifyDataSetChanged();
}

但是,由于contains()方法只检查其中是否存在相同的Product对象,而不是相同的UPC(条形码),因此它会一次又一次地添加具有相同UPC(条形码)编号的产品。
请告诉我一种检查Product对象的'productName'字段的方法,以避免重复的productName(即UPC/条形码编号)。

e4yzc0pl

e4yzc0pl1#

boolean isContains = false;
String productName = product.getProductName();

for (Product productItem : arraylist) {
    if (productItem.getProductName().equals(productName)) {
        isContains = true;
        break;
    }
}

if (isContains) {
    Toast.makeText(getContext(), "Product already exists", Toast.LENGTH_SHORT).show();
} else {
    arraylist.add(product);
    adapter.notifyDataSetChanged();
}

完全比较后在arraylist中添加productName

相关问题