2016-11-02 2 views
0

지금까지 하나의 사용자로만 구성된 배열 목록을 만들었습니다. 필자의 과제에서는 username과 userType과 같은 해당 사용자의 속성을 출력하라는 요청을 받았습니다. 지금까지 내가 알고있는 한, 단지 for가 할당 되었다면이 속성들을 출력 할 향상된 for 루프를 만들었다. 제 질문은 이러한 속성을 내 사용자에게 할당하는 방법입니다. 배열 목록이있는 UserGroup 클래스와 User 클래스에 대한 세부 정보가 지정되어있는 User 클래스를 만들었지 만 User 클래스가 내가 성취하려는 대상에 맞는지 확실하지 않습니다.배열 목록에서 사용자에게 속성을 할당하는 방법은 무엇입니까?

사용자 그룹이 :

package main; 
import java.util.ArrayList; 

public class UserGroup { 

    ArrayList<User> userGroup = new ArrayList<>(); 
    User userOne; 

    public void addSampleData(String username, String userType, String name) { 

    userGroup.add(new User("LeeB", "Staff", "Lee")); 

} 

    public User getUser(int index) { 

    return userGroup.get(0); 

} 

    public void printusername(){ 

     for (User x : userGroup) 
      System.out.println(x); 

    } 
} 

는 사용자

:

Main 메서드

package main; 
class User { 

    String username; 
    String userType; 
    String name; 


    User(String username, String userType, String name) { 

    this.username = username; 
    this.userType = userType; 
    this.name = name; 
    } 

    public String getUsername() { 
     return username; 
    } 

    public String getUserType() { 
     return userType; 
    } 

    public String getName() { 
     return name; 
    } 

    public String setUserType(String admin) { 
     return userType = admin; 
    } 

} 
: 그냥 몇 가지

package main; 

public class Main { 
public static void main(String[] args) { 
    for (int counter=2; counter<=40; counter+=2) { 
     System.out.println(counter); 
    } 
    System.out.println("For loop complete."); 

    int counter = 1; 
    int increment = 2; 
    int loopexeccounter = 0; 
    while (counter <= 500) { 
     loopexeccounter = loopexeccounter + 1; 
     System.out.println(counter); 
    counter = counter + increment++; 
    } 
System.out.print("This loop iteratted "+loopexeccounter+" times."); 
} 

    public Main() { 

    UserGroup userGroupObject = new UserGroup(); 

System.out.println(userGroupObject.getUser(0)); 
} 

} 

최신 방법 위의 모든 것을 무시의 다음 두 클래스의 코드는 그들이 우리가 인쇄하기를 원하는 루프의 예.

업데이트 된 버전이지만 오류는 발생하지 않지만 사용자 (0)는 인쇄되지 않습니다.

+0

print'공공 홈페이지는()의'* 생성자 * 아닌 방법 –

답변

1

지금까지 하나의 사용자로만 구성된 배열 목록을 만들었습니다.

실제로는 user0이 할당되지 않습니다. 그것은 null이므로 목록에 null 만 추가 할 것입니다.

변수가 user0 일 필요는 없습니다. 첫 번째 사용자가 원하는 경우

ArrayList<User> userGroup = new ArrayList<>(); 
User userOne; 

public void addSampleData(String username, String userType, String name) { 
    userGroup.add(new User(username, userType, name)); 
} 

,

public User getUser(int index) { 
    return userGroup.get(index); 
} 

것은, 매개 변수로 0이 메서드를 호출합니다.

지금까지이에 관한 한, 괜찮아,하지만 당신은 단지 x의 이름을 원하는 경우, 그 대신에 전체 개체의

약간 고급 인쇄, 또는 How do I print my Java object without getting "[email protected]"?

public void printusername(){ 

    for (User x : userGroup) 
     System.out.println(x); 
} 

참조 옵션은 본질적으로 사용자 목록입니다.

public class UserGroup extends ArrayList<User> { 

또는, add, get보다 더 전문적인 방법을 추가하지 않는 한 당신은 정말 클래스가 필요하지 않으며,

+0

덕분입니다 도움을 많이 주셔서 감사합니다. –

+0

getUser 메서드의 "int index"부분에 대해, 모든 것이 한 가지를 제외하고 작동한다고 생각합니다. 인덱스를 대체 할 대상은 무엇입니까? –

+0

아무것도 없습니까? 'index'는 매개 변수 이름입니다 –

관련 문제