有没有办法通过它的名字得到一个arraylist元素?

时间:2017-02-15 10:23:01

标签: java arraylist

我用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));

但我没有学生人数。有没有办法通过名字来获取它们,这是在学生班?

3 个答案:

答案 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);