【问题标题】:ArrayList get() method to find class variable?ArrayList get() 方法来查找类变量?
【发布时间】:2020-01-13 09:21:36
【问题描述】:

所以我有一个类类型的列表。例如,我有一个 ClassRoom 类和一个 Student 类。

我创建了一个学生数组列表:ArrayList<Student> studList = new ArrayList<>();

我有一个添加学生的方法,所以索引0被占用:

    public void addStudent(int studID, String studName, int studPhoneNum){
        Student stud = new Student(studName, studID, studPhoneNum);
        studList.add(stud);
        System.out.println(studList);
    }

现在我想要的是在学生变量中搜索特定值。例如,学生由姓名、ID 和电话号码表示。如何遍历该学生列表以查找具有特定电话号码的学生,然后打印他或他的电话号码?

这是函数:

    public void sendMessage(int phone){
        for (Student s : studList) {
            studList.get(studPhoneNum);
            \\ then print the Student the phone number belongs to..
        }
    }

我确实在 Student 类中设置了一个 studPhoneNum 变量。

【问题讨论】:

  • if(s.getPhonenumber == phone)
  • 谢谢!我不敢相信我之前没有找到这个。

标签: java arraylist


【解决方案1】:

最简单的方法是创建一个函数来获取电话号码,如下所示:

public int getPhoneNumber(int stuID){
    for (Student s: studList) {
        if(s.id == stuID){
            return s.phoneNumber;
        }
    }
    return 0;
}

我在这里假设 stuList 是一个全局变量,因为您可以在 addStudent 中访问它而无需将其作为参数传递,否则您必须将其传递给函数。 希望对你有帮助。

【讨论】:

  • 谢谢,我错过了s.something 的全部内容。这工作得很好:)
【解决方案2】:

你可以这样做:

  1. 使用 Java 8 流:

    studList.stream()
            .filter(student -> student.getStudPhoneNum==studPhone)
            .findFirst()
            .ifPresent(student -> {
                // Do something
            });
    
  2. 使用 for 循环:

    for(Student s: studList){
        if(s.getStudPhoneNum==studPhone){
            //do something
        }
    }
    

【讨论】:

    【解决方案3】:

    由于您正在迭代 studList,因此“s”代表该列表中的每个学生。

    public void sendMessage(int phone){
        for (Student s : studList) {
            if (s.getStudPhoneNum() == phone){
                 System.out.print(s.getStudName());
            }
        }
    }
    

    在这里,您需要创建 getter 方法(getStudPhoneNumber()、getStudName())来引用 Student 类的属性。

    【讨论】:

      猜你喜欢
      • 2021-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 2012-10-06
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多