所以我有一个类类型的列表。例如,我有一个ClassRoom类和一个Student类。
我创建了一个学生的ArrayList: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
变量。
答案 0 :(得分:1)
最简单的方法是创建一个函数来获取如下电话号码:
public int getPhoneNumber(int stuID){
for (Student s: studList) {
if(s.id == stuID){
return s.phoneNumber;
}
}
return 0;
}
我在这里假设stuList是一个全局变量,因为您可以在addStudent中访问它,而无需将其作为参数传递,否则必须将其传递给函数。 希望对您有所帮助。
答案 1 :(得分:1)
由于要遍历studList,因此's'代表该列表中的每个学生。
public void sendMessage(int phone){
for (Student s : studList) {
if (s.getStudPhoneNum() == phone){
System.out.print(s.getStudName());
}
}
}
在这里,您需要创建getter方法(getStudPhoneNumber(),getStudName())来引用Student类的属性。
答案 2 :(得分:1)
您可以执行以下操作:
使用Java 8流:
studList.stream()
.filter(student -> student.getStudPhoneNum==studPhone)
.findFirst()
.ifPresent(student -> {
// Do something
});
使用循环:
for(Student s: studList){
if(s.getStudPhoneNum==studPhone){
//do something
}
}