我用Java编写程序,我遇到以下问题:
//this is the important part of my class student
public class Student{
private String name;
public Student(String name){
this.name = name;
}
//Getter
public String getName() {
return name;
}
}
//this is the other class (could be the main for example)
public class Load {
private ArrayList<Student> student= new ArrayList<Student>();
student.add(new Student(name));
}
在该计划的后期,我再次需要这些学生。我可以这样得到它们:
System.out.println(student.get(0));
但我没有学生人数。有没有办法通过名字来获取它们,这是在学生班?
答案 0 :(得分:3)
你可以做的是创建一个以String
为输入的函数,搜索student
列表并返回是否找到了对象。
public Student findStudentByName(String name) {
for(Student studentObj : student) {
if(studentObj.getName().equals(name)) {
return studentObj;
}
}
return null;
}
答案 1 :(得分:0)
在这种情况下,您可以使用地图来保存学生列表。那么你应该通过名字获得学生。
Tag
答案 2 :(得分:0)
您可以使用student.size()
获取List<Student> student = new ArrayList<Student>();
中的元素数量。
此外,您应尽可能使用接口类型,例如student.add(new Student(name));
。
此外,您的代码中会输入拼写错误:Load
。
至于最后一个问题,只需在public Student searchByName(String targetStudentName) {
for (Student s : student) {
if (targetStudentName.equals(s.getName())) {
return s;
}
}
return null;
}
内使用额外的方法,在当前列表中搜索所需的学生姓名:
someView.setId(int);