user974802:
Tengo este método
private List<StudentVO> getStudentVOList() {
List<HouseDTO> hDtoList = new ArrayList<HouseDTO>();
for (HouseDTO hdn : hDtoList) {
if (hdn.getHouseName().equals("ZSRT")) {
return hdn.getStudents();
}
}
lo que estoy tratando de convertir a Java 8, he tratado como se muestra a continuación
return hDtoList.stream().filter(hdn->hdn.getHouseName().equals("ZSRT")).map(hdn->hdn.getStudents()).collect(Collectors.toList());
-
public class HouseDTO {
public String getHouseName() {
return houseName;
}
public void setHouseName(String houseName) {
this.houseName = houseName;
}
public List<StudentVO> getStudents() {
return students;
}
public void setStudents(List<StudentVO> students) {
this.students = students;
}
private String houseName ;
List<StudentVO> students;
}
public class StudentVO {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
private String name;
private int rollNo;
}
YCF_L:
Se puede utilizar findAny
o findFirst
después de la map
continuación orElse(someDefaulValues)
, en su caso, una colección vacía.
return hDtoList.stream()
.filter(hdn->hdn.getHouseName().equals("ZSRT"))
.findFirst()
.map(StudentVO::getStudents)
.orElse(Collections.emptyList());