查找项目是否在Apple中

时间:2017-09-21 19:57:38

标签: java arraylist

所以我有一个名为appleList的数据库。在其中我有苹果对象,其中有一个项目列表。我试图创建一个方法,如果项目j在客户r的列表中,则返回true,否则返回false。这就是我到目前为止所提出的......

public boolean (String m)
{
        if(n[i] = p)
            found = true;
    return found;
}

5 个答案:

答案 0 :(得分:1)

使用equals()比较字符串。另外,如果n是一个数组,你需要传递它,如下所示

public boolean hasProduct(String[] n, String p)
{
boolean found = false;
for(int i=0; i < n.size(); i++)
    if(n[i].equals(p))
        found = true;
return found;
}

答案 1 :(得分:1)

List中有一个可以使用

的现有方法
customerList.contains(object)

如果列表包含对象

,则此方法返回true

如果您使用自定义对象,则可以覆盖方法equals,因此上述方法将使用它来比较列表中的所有对象

public class MyCustomClass{
    private Integer id;

    //Other variables, getters and setters

    @Override
    public boolean equals(Object o2){
        if(o2 instanceof MyCustomClass){
           MyCustomClass o2custom = (MyCustomClass) o2;
           if(o2custom.getId()!=null && this.id != null){
               return o2custom.getId() == this.id;
           }
        }
        return false;
    }
}

拥抱

答案 2 :(得分:0)

字符串n不是数组n [0]错误试试这个:

    public boolean hasProduct(String p)
{
    boolean found = false;
    for(int i=0; i < customerList.size(); i++)
        if(customerList.get(i) == p)
            found = true;
    return found;
}

答案 3 :(得分:0)

要迭代ArrayList,您需要使用.get()。此外,一旦找到该项,我在循环中添加了一个中断。

public boolean hasProduct(String n, String p)
{
    boolean found = false;
    for(int i=0; i < this.customerList.size(); i++)
       if(this.customerList.get(i) == p)
          found = true;
           break;
    return found;
}

答案 4 :(得分:0)

由于您正在寻找ArrayList中的String,您可以简单地执行以下操作:

MyForm(formdata=None)

正如@DigaoParceiro所提到的,如果您正在寻找集合中的自定义对象,请务必覆盖equals()和hashCode()。 String已经为你提供了这个。