【问题标题】:Checking if a variable exist in a List of custom class [duplicate]检查自定义类列表中是否存在变量[重复]
【发布时间】:2020-07-02 15:02:39
【问题描述】:

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


private List<Grocery> groceryList;

其中Grocery 类有namepricequantity 变量和吸气剂... 我想检查一个杂货产品是否已经存在于我的列表中,如果不存在我想将它添加到我的列表中,这是我的代码:

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 是一个具有普通字符串名称的变量 .这不起作用。

【问题讨论】:

    标签: java android


    【解决方案1】:

    GroceryCheckOut 是完全不同的对象,您实际上无法使用equalscontains 比较两种不同类型的对象。如果您的 CheckOut 类比 Grocery 对象拥有更多的项目,那么我建议将 Grocery 对象本身作为属性添加到 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 对象时,您基本上是在其中创建了一个杂货项目,现在您可以与GroceryActivity 中的项目列表进行比较。

    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;
    }
    

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      您的代码不起作用,因为您正在检查 itemName 和项目本身。

      按如下方式进行:

      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 是您要结帐的项目的名称,getItemNameclass GroceryitemName 的getter。

      【讨论】:

        猜你喜欢
        • 2018-05-26
        • 1970-01-01
        • 2018-05-21
        • 2014-07-19
        • 1970-01-01
        • 2014-01-20
        • 2015-07-24
        • 2018-06-19
        • 2011-12-25
        相关资源
        最近更新 更多