2017-04-30 2 views
0

Ich versuche eine verschachtelte for-Schleife zu verwenden, um eine Liste innerhalb einer ArrayList zu wiederholen, um zu einem bestimmten Objekt (in diesem Fall eine E-Mail) zurückzukehren. Hier ist der Code, den ich habe -Java List in ArrayList Iteration

private ArrayList<Trainer> trainers; 
... 

public String checkEmail(){ 
    String userEmail = ""; 
    for(int i=0; i<trainers.size(); i++){    
     for(int j=0; j<trainers.get(i).size(); j++){ 
      userEmail = userEmail + trainers.get(i).get(j); 
     } 

     return userEmail; 
    } 
} 

Hier ist die Arraylist in ein xml.file exportiert, ist das E-Mail-Feld, was ich

<object-stream> 
    <list> 
    <Member> 
     <email>[email protected]</email> 
     <name>example</name> 
     <address>example</address> 
     <gender>M</gender> 
     <height>1.78</height> 
     <weight>65.0</weight> 
     <chosenPackage>student</chosenPackage> 
    </Member> 
    </list> 
</object-stream> 

Dank zugreifen bin versucht!

Bearbeiten: Entschuldigung für jede Vagheit mit meiner Frage, ich möchte die erste for-Schleife (i) durch jedes 'Memeber' durchlaufen wie im xml gezeigt, und die verschachtelte Schleife (j), um durch jede einzelne zu durchlaufen Mitglied. Ich möchte die E-Mail eines bestimmten Mitglieds zurückgeben, aber in der Zeile for(int j=0; j<trainers.get(i).size(); j++){ bekomme ich 'size() undefined für den Typ Trainer'.

+3

Welches Problem hat Ihr Code? Welche Frage stellst du speziell? –

+1

Unabhängig von Ihrer Frage (was nicht klar ist) - verstehen Sie, dass Ihre externe Schleife (die 'für i') nur einmal ausgeführt wird und dann wieder zurück, oder? Es wird nie den Rest der Trainer erreichen. – SHG

Antwort

0

Bitte schreiben Sie die Return-Anweisung außerhalb der for-Schleife. (Ich vermute nur, dass du es versehentlich geschrieben hast). Wenn Sie mit der gleichen Schleife fortfahren, wird die return-Anweisung auf i = 0 selbst ausgeführt und gibt somit ein falsches Ergebnis.

public String checkEmail(){ 
String userEmail = ""; 
for(int i=0; i<trainers.size(); i++){    
    for(int j=0; j<trainers.get(i).size(); j++){ 
     userEmail = userEmail + trainers.get(i).get(j); 
    } 


} 
return userEmail; 
}