Existe maneira de otimizar o código abaixo ainda mais usando java8?

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 adminAreaSetrealizar diferentes tipos criança deStudent

também:

Dado que a questão é marcado com , 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());

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=173279&siteId=1
Recomendado
Clasificación