2017-10-26 2 views
0

특정 조건을 충족하는 요소를 추가하는 방법 ArrayList userList 클래스가 있습니다. 'myUserGroup'이라는 클래스의 첫 번째 인스턴스를 만들고 10 개의 요소로 채운 다음 '관리자'라고하는 두 번째 클래스를 만듭니다. 'myUserGroup'arraylist를 반복하고 요소가 'admin'과 같은 경우 '관리자'arraylist에 추가합니다.자바 - 개체 arreylist 통해 반복하고 다른 개체 arraylist

public class Main { 

public static void main(String[] args) { 

    UserGroup myUserGroup = new UserGroup(); 

    myUserGroup.addSampleData(); 

    UserGroup administrators = new UserGroup(); 

    while(myUserGroup.getUserIterator().hasNext()) { 

     if(myUserGroup.getUserIterator().next().getUserType().equals("admin")) { 

      administrators.userList.add(myUserGroup.getUserIterator().next()); 
     } 
    } 
+0

통화 다음 내용을() 한 번만 루프 내. –

답변

1

몇 가지 문제 :

    public class UserGroup { 
    
        ArrayList<User> userList; 
    
        UserGroup(){ 
         userList = new ArrayList<User>(); 
    
        public Iterator<User> getUserIterator() { 
         Iterator<User> iterate = userList.iterator(); 
         return iterate; 
        } 
    

    여기에 내가 두 번째 사용자 그룹의 ArrayList에 요소를 추가하기 위해 노력하고있어있는 클래스가있다 : 여기

    는 사용자 그룹 클래스의
  1. 각 루프마다 새로운 반복기가 추가 된 것 같습니다.
  2. 동일한 개체를 가져올 때 next()을 두 번 호출하면 두 개의 개체가 생성됩니다.

대신 while 루프의이 시도 :

for (User u : myUserGroup.userList) { 
    if (u.getUserType().equals("admin")) { 
    administrators.userList.add(u); 
    } 
}