到目前为止,我已经创建了一个目前只包含一个用户的数组列表。对于我的任务,我被要求打印该用户的属性,例如其用户名和userType。据我所知,我已经创建了一个增强的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);
}
}
用户:
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 :(得分: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作为参数调用该方法。
就这一点而言,没关系,但请参阅How do I print my Java object without getting "SomeType@2f92e0f4"?
public void printusername(){
for (User x : userGroup)
System.out.println(x);
}
或者,如果你只想要x
的用户名,那么打印而不是整个对象
稍微更高级的选项,因为该组基本上是一个用户列表。
public class UserGroup extends ArrayList<User> {
或者,除非您添加比add
,get
和print