2017-04-30 1 views
0

중첩 된 for 루프를 사용하여 ArrayList 내의 목록을 반복하여 특정 객체 (이 경우 전자 메일)로 돌아가려고합니다. 여기에 코드를 내가 가지고있다 -ArrayList 반복 내 Java 목록

여기
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; 
    } 
} 

가 xml.file로 내 보낸 ArrayList를하고, 이메일 필드는 내가

<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> 

감사에 액세스를 시도하고있는 무슨이다!

편집 : 내 질문에 애매 모호한 것에 대해 사과드립니다. 첫 번째 for 루프 (i)를 사용하여 xml에 표시된 'Memeber'와 중첩 루프 (j)를 반복하여 각 개체를 반복합니다. 회원. 특정 회원의 이메일을 반환하고 싶지만 for(int j=0; j<trainers.get(i).size(); j++){ 줄에 'size()가 Trainer 유형으로 정의되지 않았습니다.'가 표시됩니다.

+3

코드에 어떤 문제가 있습니까? 특히 어떤 질문을 하시겠습니까? –

+1

당신의 질문 (명확하지 않다)에 관계없이 - 당신의 외부 루프 ('for i')가 단 한 번만 실행되어 돌아올 것이라고 이해합니까? 나머지 강사에게 결코 도달하지 않습니다. – SHG

답변

0

return 문을 for 루프 외부에 작성하십시오. (나는 당신이 실수로 그것을 썼다고 생각하고있다.) 동일한 루프를 계속 수행하면 return 문은 i = 0에서 실행되어 잘못된 결과를 제공합니다.

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; 
}