ArrayList.contains()方法不起作用

时间:2013-04-15 14:16:07

标签: java arrays arraylist contains

我有ArrayList ordineDopoModifica

public static ArrayList<Persona> ordineDopoModifica = new ArrayList<Persona>();

这是Persona课程:

class Persona {

public String nome;
public String prezzo;
public String ingredienti;
public String codp;
public byte[] immagine;}

现在我想说一下int是否包含在ordineDopoModifica ...

这就是我现在所做的:

boolean c=sceltacibo.ordineDopoModifica.contains(chiave);

这是我重写的等于方法:

@Override
public boolean equals(Object obj) {
    if (obj == null) {
      return false;
    }

    if (obj instanceof Persona) {
        Persona p = (Persona) obj;
        return codp.equals(p.codp);
    } 

    else return false;

  }

但是boolean c=sceltacibo.ordineDopoModifica.contains(chiave);不起作用 - 它总是返回false,即使我确定chiave中有ArrayList

1 个答案:

答案 0 :(得分:7)

  

现在我想说我的arrayList中是否包含int ordineDopoModifica ......

您正在检查ArrayList<Persona> ordineDopoModifica是否包含int。它没有,它只包含Persona个对象,因此它总是返回false。

更准确地说,equals(Object obj)将失败:

if (obj instanceof Persona) {
    Persona p = (Persona) obj;
    return codp.equals(p.codp);
} else 
    return false;

这是因为Integer不是Persona的实例。