Faiz Kidwai:
Eu encontrei o código abaixo no meu projeto. Eu queria saber se ele pode ser otimizado ainda pode estar usando java 8 fluxos ou APIs de coleta em geral.
private Set<Student> getFilteredSet() {
Set<Student> unfilteredSet = getAllStudents();
Set<Student> adminAreaSet = getAdminStudents();
Set<String> adminAreaID = new HashSet<>();
Set<Student> filteredSet = new HashSet<>();
for (final Student student : adminAreaSet) {
adminAreaID.add(student.getId());
}
for (final Student student : unfilteredSet) {
if (adminAreaID.contains(student.getId())) {
filteredSet.add(student);
}
}
return filteredSet;
}
Nota: unfilteredSet
e adminAreaSet
realizar diferentes tipos criança deStudent
também:
Dado que a questão é marcado com java-stream , uma maneira de melhorar a legibilidade do código poderia ser para transformá-lo como:
Set<String> adminAreaID = getAdminStudents().stream()
.map(Student::getId)
.collect(Collectors.toSet());
return getAllStudents().stream()
.filter(student -> adminAreaID.contains(student.getId()))
.collect(Collectors.toSet());