ArrayList get() 方法查找类变量?



所以我有一个类类型的列表。例如,我有一个教室类和一个学生类。

我创建了一个 ArrayList of Students: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..
}
}

我在学生类中设置了一个studPhoneNum变量。

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

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

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

您可以执行以下操作:

  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
    }
    }
    

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

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

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

最新更新