2011-03-22 2 views
1

J'ai besoin d'aide pour écrire une boucle pour chaque boucle qui cherche dans une liste de tableaux appelée peoplelist de type people. La boucle doit rechercher les valeurs String code et String dans le tableau. Il doit ensuite retourner son identifiant s'il est trouvé, et null s'il ne l'est pas. Toute sorte d'aide serait géniale!Utiliser une boucle pour chaque boucle pour trouver deux éléments dans une liste de tableaux

+1

Est-ce que ce travail est fait? – SWeko

+1

il semble que vous ne voulez pas trouver "deux éléments" dans une liste de tableau, mais plutôt "deux attributs" de tous les éléments 'People' dans une liste de tableau. Correct? Pourriez-vous nous dire à quoi ressemble votre classe 'People'? – MarcoS

+0

Oui, je veux dire des attributs désolé. Va obtenir le code me donner 2 secs – Jimmy

Répondre

0
//In case multiple persons match :) 
List<String> result = new LinkedList<String>(); 

for (People person : peopleList) { 
    if (person.getName().equals(name) && person.getPostcode().equals(postCode)) 
    result.add(person.getId()); 
} 

if(result.isEmpty()){ 
    return null; 
}else{ 
    return result; 
} 
+0

Merci beaucoup! – Jimmy

2

besoin de faire beaucoup d'hypothèses au sujet de vos classes, mais quelque chose comme cela devrait suffire:

for (People person : peoplelist) { 
    if (person.getPostCode().equals(postcode) && person.getName().equals(name)) { 
     return person.getId(); 
    } 
} 
// deal with not being found here - throw exception perhaps? 
1

Avec « deux éléments », voulez-vous dire « deux attributs d'une classe »? Si oui, quelque chose le long de ces lignes ferait:

String id = null; 
for(People p : peoplelist) { 
    if(somePostcode.equals(p.postcode) && someName.equals(p.name)) { 
     id = p.id; 
     break; // no need to continue iterating, since result has been found 
    } 
} 
// result “id” is still null if the person was not found 
3

Si la classe People est écrit comme un bean Java (par exemple avec des méthodes de lecture standard), quelque chose comme ça ferait le travail:

for (People person : peopleList) { 
    if (person.getName().equals(name) && person.getPostcode().equals(postCode)) 
    return person.getId(); 
} 
return null; 

Si le nom ou le code postal d'une personne peut être null, vous pouvez retourner les appels equals pour éviter les exceptions de pointeur nul (par exemple, name.equals(person.getName()) au lieu de).

Btw Person serait un meilleur nom.

0
People foundPerson; 
for (People eachPeople : peoplelist) 
{ 
    if (Integer.valueOf(eachPeople.getID()) == 10054 
     && "Jimmy".equals(eachPeople.getName())) 
    { 
     foundPerson= eachPeople; 
     break; 
    } 
} 
0

En supposant que vous avez un haricot Person, alors si vous voulez récupérer toutes les instances de Person dont postcode et name correspondent certaines valeurs, vous pouvez faire quelque chose comme ceci:

public List<Person> searchFirst(List<Person> persons, String postcode, String name) { 
    List<Person> matchingPersons = new ArrayList<Person>(); 
    for (Person person : persons) { 
     if (person.getPostcode().equals(postcode) && person.getName().equals(name)) 
      matchingPersons.add(person); 
    } 
    return matchingPersons; 
} 

Suivant temps, vous pouvez nous montrer votre code, afin que nous puissions vous aider à comprendre ce que vous faites mal :)

+0

Ok désolé je suis nouveau sur ce site, je voudrais juste dire que j'ai essayé cela mais c'est la première fois que j'utilise pour chaque boucle et je ne trouve pas d'exemples simples pour m'aider à comprendre :) – Jimmy

Questions connexes