J'ai un employé POJO qui a une liste de compétences comme indiqué ci-dessous:-
public class Skills {
private String language;
private double versions;
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public double getVersions() {
return versions;
}
public void setVersions(double versions) {
this.versions = versions;
}
}
import java.util.List;
public class Employee {
private long empId;
private String empName;
private String empAddress;
private double salary;
private List<Skills> skills;
public List<Skills> getSkills() {
return skills;
}
public void setSkills(List<Skills> skills) {
this.skills = skills;
}
public long getEmpId() {
return empId;
}
public void setEmpId(long empId) {
this.empId = empId;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public String getEmpAddress() {
return empAddress;
}
public void setEmpAddress(String empAddress) {
this.empAddress = empAddress;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Employee{" +
"empId=" + empId +
", empName='" + empName + '\'' +
", empAddress='" + empAddress + '\'' +
", salary=" + salary +
'}';
}
public Employee(long empId, String empName, String empAddress, double salary, List<Skills> skills) {
this.empId = empId;
this.empName = empName;
this.empAddress = empAddress;
this.salary = salary;
this.skills = skills;
}
}
Et j'essaie de faire ce qui suit :-)
List<Employee> javaEmpList = new ArrayList<>();
for (Employee emp : empList) {
for (Skills skill : emp.getSkills()) {
if (skill.getLanguage().equalsIgnoreCase("Java")) {
javaEmpList.add(emp);
}
}
}
J'essaie de convertir cette implémentation en utilisant les fonctionnalités de Java 8. Quelqu'un peut-il m'aider ? Je ne connais pas Java 8. J'ai essayé d'utiliser la combinaison streams + filter + map mais je n'arrive pas à obtenir le résultat.