java - 从链接列表中检索特定数据

标签 java

我想通过流查找性别为女性的学生

学生类(class)

public class Student {
    private String first;
    private String last;
    private int ID;
    private Gender gender;

    int next=0;

    List<Course> courses=new LinkedList<>();
    List<Student> students=new LinkedList<>();

    public Student(String first, String last, int iD, Gender gender) {
        this.first = first;
        this.last = last;
        ID = iD;
        //this.gender = gender;
    }

    public void enroll(Course c) {
        courses.add(c);
    }

    public void isFemale(){
        Student s;
        return s.gender=Gender.F;
    }
}

enum 性别类

public enum Gender {
    M,F;
    private Gender gender;
}

public class Main {
    public static void main(String[] args) {

        List<Student> studentsOfClass=new LinkedList<>();

        studentsOfClass.add(new Student("john","smith",01,Gender.M));
        studentsOfClass.add(new Student("mick","tayson",05,Gender.M));
        studentsOfClass.add(new Student("sara","conor",04,Gender.F));
        studentsOfClass.add(new Student("Tana","smith",02,Gender.F));

        Course c1=new Course("fiologiya","anna",0234);
        Course c2=new Course("mathematics","maria",1134);
        Course c3=new Course("phisics","luisa",0534);

        studentsOfClass.stream().limit(3).forEach(s->s.enroll(c1));

        Collection<Student> femaleStudents= studentsOfClass.stream().filter(Student::isFemale).collect(Collectors.toList());

    }
}

最佳答案

您正确使用了 Stream 方法,但您的 isFamele 方法是错误的。它应该返回 boolean 值并检查当前学生的性别。

应该是:

public boolean isFemale() 
{
    return gender==Gender.F;
}

您还应该取消注释此构造函数行 - //this.gender = gender; - 并可能删除 private Gender gender;来自性别枚举。

此外,您还可以更改 femaleStudents 的类型来自CollectionList<Student> ,更准确。

关于java - 从链接列表中检索特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30691955/

相关文章:

java - 将数据返回给调用者的模态 JInternalFrame

Java:迭代 tcl 字典

java - Struts 2 下载文件为 0 字节

java - 在 Java SQLite 中执行查询时出现 SQLException

java - 为什么 Mattcher 在成功找到后会抛出异常

java - 无法解释速度的行为

java - 需要找出defineAsst模块中return语句的错误

java - 如何通过 Web 应用程序访问开箱即用的 Web 脚本(露天)

java - 如何使这段代码更简洁?

java - appengine Key.createKey(kind, id) 是否始终返回相同的结果?