2013-04-15 4 views
-1

У меня есть ArrayList ordineDopoModificaArrayList.contains() не работает

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

Это класс Персона:

class Persona { 

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

Теперь я хочу сказать, если ИНТ содержится в 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); не работает - она ​​всегда возвращает ложь, хотя я уверен, что chiave находится в ArrayList.

+2

Показать полный пример того, что не работает. – assylias

+0

Вы тоже переопределяете hashCode()? потому что вы должны –

+0

Я уверен, что 'содержит' работу ... Проверьте свой' equals' – NilsH

ответ

7

Теперь я хочу сказать, что если ИНТ содержит в моей ArrayList 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.

+0

Да, но если у меня в моем массивеLIst ordineDopoModifica: cod = 13 nome = hello qnt = 3, как я могу это сделать, если я хочу, если myArray.contains (cod = 13)? – Mikykly

+0

Код не является полным, но, похоже, это правильно. – madth3

+0

@Mikykly Итерации по списку, и для каждого экземпляра 'Persona' выполните проверку, которую вы хотите сделать. Если вы получаете удар, верните объект. – Magnilex

Смежные вопросы