从Java中的列表对象获取特定参数

时间:2014-01-24 08:41:29

标签: java list

不知道我是否以正确的方式提出了问题,但是这里...... 我需要从列表用户打印对象的用户名。 这是User类:

public class User {
   public String username;
   public String email;
   public String membership;

   public User (String us, String em, String mm){
       us=username;
       em=email;
       mm=membership;
}}

以下是主要课程:

public class Main {
    List<User> users = new ArrayList<User>();

    users.add(new User("johnsmith", "johnsmith@gmail.com", "Premium"));
    users.add(new User("walterwhite", "walter.white@gmail.com", "Beginner"));
    users.add(new User("drwho", "doctorwho@gmail.com", "Gold"));
    users.add(new User("parker", "parker2@gmail.com", "Premium"));

    for (int i=0; i<users.size(); i++){
        System.out.println(); // <--------- So I don't know what to use here
}}}

我在println()方法中使用了什么?我只需要打印用户名(johnsmith,walterwhite,drwho,parker)。或者任何其他对象(电子邮件或其他任何东西,我只需要知道如何从列表中打印某些参数)。已经尝试过println(users.membership),println(会员)和类似的变化...

4 个答案:

答案 0 :(得分:2)

我怀疑你想要这样的东西:

for (int i = 0; i < users.size(); i++) {
    // Access the user by position in the list
    User user = users.get(i);
    // Now print the username for that specific user
    System.out.println(user.username);
}

为了清楚起见,我将循环体分成两个语句,但它等同于:

System.out.println(users.get(i).username);

这是使用List.get(int)方法访问列表中特定索引处的项目。

现在,有更好的方法可以做到这一点:

  • 如评论中所述,构造函数中的赋值是向后的。您需要从参数
  • 分配 字段
  • 您的字段通常应该是私密的。必要时添加公共“getter”方法。
  • 使用增强型for循环简单地按顺序访问集合的每个元素:

    for (User user : users) {
        System.out.println(user.getUserName()); // After addressing the above
    }
    

答案 1 :(得分:0)

System.out.println(users.get(i).username);

我建议您使用

for(Object o : objects)

并为你的字段声明getter和setter。

答案 2 :(得分:0)

使用带有索引的get()方法。

for (int i=0; i<users.size(); i++){
        System.out.println(users.get(i).username); // <---get user object at index i and  use here
}

在你的构造函数中,如果你closeley看

public User (String us, String em, String mm){
       us=username;
       em=email;
       mm=membership;
}

作业必须从左到右。

那应该是

public User (String us, String em, String mm){
       username= us;
       email=em;
       membership=mm;
}

答案 3 :(得分:0)

构造函数中存在错误。它应该是

public User (String us, String em, String mm){
   username = us;
   email = em;
   membership = mm;

}

您应该对实例变量进行一些阅读。