当前位置: 首页 > 知识库问答 >
问题:

检查自定义类列表中是否存在变量[重复]

辛渝
2023-03-14

我有一个我创建的自定义类对象的列表。

private List<Grocery> groceryList;

其中,杂货店类有名称价格数量变量和getter。。。我想检查一下我的列表中是否已经有一种食品杂货,如果不存在,我想把它添加到我的列表中,这是我的代码:

CheckOut hisCheckOut = new CheckOut(itemName ,String.valueOf(price), String.valueOf(orderQuantity), String.valueOf(itemTotalPrice));


    if(!(GroceryActivity.list.contains(itemName))){
        GroceryActivity.list.add(hisCheckOut);
        GroceryActivity.totalItemsPrice += itemTotalPrice;
    }

itemName是一个具有普通字符串名称的变量。这不起作用。

共有2个答案

云煌
2023-03-14

杂货店和结帐是完全不同的对象,实际上不能使用等于或包含来比较两种不同类型的对象。如果您的CheckOut类包含的项目比杂货店对象多,那么我建议将杂货店对象本身作为属性添加到CheckOut对象中,以便使用比较方法。

因此,CheckOut类可能如下所示。

public class CheckOut {
    public long checkOutTime; 
    // ... other extra attributes can go here

    // Add the Grocery object as an attribute
    public Grocery groceryItem; 
}

现在,在创建CheckOut对象时,您基本上是在其中创建了一个杂货项目,现在您可以与GroceryActive中的项目列表进行比较。

boolean itemAdded = false;
for (CheckOut checkout : GroceryActivity.list) {
    if (checkout.groceryItem.getName().equals(itemName) {
        // Already added to the checkout
        itemAdded = true;
        break;
    }
}

if (!itemAdded) {
    GroceryActivity.list.add(hisCheckOut);
    GroceryActivity.totalItemsPrice += itemTotalPrice;
}

我希望这有帮助!

冯宏浚
2023-03-14

您的代码无法工作,因为您正在检查项目名称和项目本身。

按以下步骤操作:

boolean found=false;
for(Grocery g: GroceryActivity.list){
    if(g.getItemName().equals(itemName)){
        found=true;
        break;
    }
}
if(!found){
    //...do whatever you want to do
}

其中,itemName是要签出的项目的名称,getItemName类杂货店中itemName的getter。

 类似资料:
  • 问题内容: 我试图用bash编写脚本来检查用户输入的有效性。 我想将输入(例如变量)与有效值列表进行匹配。 我目前想出的是: 我的问题是,是否有更简单的方法可以做到这一点, 就像大多数编程语言一样。 另外: 说的清单是: 我的代码将仅针对那些值回显该消息,因为将其视为数组而不是字符串,所有字符串操作都将验证,而我希望它失败。 问题答案: 或创建一个函数: 使用它:

  • 问题内容: 哪种方法检查变量是否已初始化是更好/正确的方法?(假设变量可以容纳任何内容(字符串,整数,对象,函数等)) 要么 要么 问题答案: 该运营商将检查变量真的不确定。 该运营商,不同于其他运营商,不会抛出 的ReferenceError 与未声明的变量使用时例外。 但是,请注意将返回。我们必须小心避免将变量初始化为的错误。为了安全起见,我们可以改用以下方法:

  • 我需要验证表中是否已经存在列。我的类扩展了CustomTaskChange,因此我的方法接收一个数据库对象作为参数。我可以通过ResultSetObject进行我想要的验证吗?

  • 本文向大家介绍如何检查JavaScript中是否定义了变量?,包括了如何检查JavaScript中是否定义了变量?的使用技巧和注意事项,需要的朋友参考一下 要检查变量是否为“未定义”,您需要使用以下命令进行检查。如果结果为“ false”,则表示未定义变量。在这里,变量结果为“ True”,即定义为- 示例

  • 我使用in_array查看$appid是否包含在变量$r中。这是我对数组$r的print_r(数组中的appids总是在变化): $appid等于$r数组中包含的263920,但尽管满足标准,“它可以工作”,但没有得到响应。任何帮助都将不胜感激,因为我不明白我的php语句有什么缺陷。

  • 问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: MySQL检查表是否存在而不会引发异常 我的项目中有一个动态mysql查询生成器,可从不同的表创建选择查询。 我需要检查当前处理表是否存在。 假设我的表是table1,table2和table3。我的代码是这样的: 我该如何进行检查(请告诉我最简单的方法)。 问题答案: 更新的mysqli版本: 原始mysql版本: 从PHP