我刚开始学习JavaRenow,我创建了一个包含变量id和name的class student,另一个class studentlist是student的arraylist。
我想创建seach函数,允许传递stunt类的变量名(id或name)和变量值。我该怎么做?
class Student{
String ID;
String name;
public Student(){
}
public Student(String ID,String name){
this.ID = ID;
this.name = name;
}
public String getStudent() {
String info = this.ID +"\t\t\t"+ this.name;
return info;
}
}
class StudentList{
private ArrayList <Student> list = new ArrayList<>();
private int counter = 0;
static Scanner sc = new Scanner(System.in);
public StudentList(){
}
public StudentList(Student stu){
Student student = new Student(stu.ID,stu.name);
this.list.add(student);
this.counter++;
}
public int seach(String type(name or ID) , String value ){
int i;
int found = 0;
for(i = 0; i < list.size();i++){
if(value.equals(list.get(i).type){
found++;
System.out.println(value.equals(list.get(i).type);
}
}
return found;
}
}
2条答案
按热度按时间qhhrdooz1#
为班级学生的id和name创建getter。比你在seach的要求还多
gblwokeq2#
首先,我建议设置
Student
从班级到私人。然后可以添加setter和getter。在你们班上
StudentList
我将拆分并扩展搜索的功能,而不是将值类型作为附加参数传递。如果您真的需要一个函数来捆绑所有这些,您可以添加另一个函数,该函数通过一个标志来决定应该用传递的参数调用哪个函数。您还可以在这里为参数添加检查,同时具有更大的灵活性和责任分离。
补充说明:如果你想用你的名字标明名单上的学生人数
counter
变量,我强烈建议删除此变量并始终调用size()
你的列表的方法。每个java集合(即arraylist)都提供了它,在删除或添加student之后,它总是返回正确的值。为这个任务实现自己的计数器将导致更容易出错的源代码。