所以我有一个名为appleList的数据库。在其中我有苹果对象,其中有一个项目列表。我试图创建一个方法,如果项目j在客户r的列表中,则返回true,否则返回false。这就是我到目前为止所提出的......
public boolean (String m)
{
if(n[i] = p)
found = true;
return found;
}
答案 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已经为你提供了这个。