如何在学校列表中获取List<Student>
数据?
List<School> schools = new ArrayList<School>();
School school_aaa = new School();
school_aaa.setName( "aaa" );
Student student_aaa_001 = new Student();
student_aaa_001.setName( "aaa_001" );
student_aaa_001.setAge( 17 );
student_aaa_001.setId( 21345678 );
Student student_aaa_002 = new Student();
student_aaa_002.setName( "aaa_002" );
student_aaa_002.setAge( 13 );
student_aaa_002.setId( 6789876 );
List<Student> students = new ArrayList<Students>();
students.add( student_aaa_001 );
students.add( student_aaa_002 );
school_aaa.setStudents( students );
schools.add("aaa");
我只有学校名称。 但它无法使用indexOf方法。 因为那只是同一个对象。
这意味着我需要让学校对象不是学校名称。
如何找到School对象。
这里是DataTypes。
答案 0 :(得分:4)
Java 8的流API通过过滤为您提供了相当简洁的语法。如果您认为只有一个具有指定名称的学校,您可以使用findFirst()
方法:
School aaaSchool = schools.stream()
.filter(x -> x.getName().equals("aaa"))
.findFirst()
.orElse(null);
如果你不能,你将需要处理学校的子列表:
List<School> aaaSchools = schools.stream()
.filter(x -> x.getName().equals("aaa"))
.collect(Collectors.toList());
答案 1 :(得分:4)
好像你正试图在学校名单中找到一所特定的学校。如果这不是您想要做的,请告诉我。
我将如何做到这一点:
public School findSchool(String schoolName)
{
// Goes through the List of schools.
for (School i : schools)
{
if (i.getName.equals(schoolname))
{
return i;
}
}
}
答案 2 :(得分:2)
for(int cnt = 0; cnt < schools.size; cnt++){
if(schools.get(cnt).getSchooname.equalIgnorecase("Your school name")){
// cnt is your index
}
}