java8を使用し、さらにコードの下に最適化する方法はありますか?

ファイズKidwai:

私は自分のプロジェクトにコードの下に遭遇しました。Java 8つのストリームを使用するか、一般的なコレクションAPIであることも、さらに最適化することができる場合、私は思っていました。

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;
}

注意: unfilteredSetadminAreaSetの異なる子タイプを保持Student

また:

質問がでタグ付けされているので、コードの可読性を向上させるための一つの方法は、としてそれを変換することができます。

Set<String> adminAreaID = getAdminStudents().stream()
        .map(Student::getId)
        .collect(Collectors.toSet());

return getAllStudents().stream()
        .filter(student -> adminAreaID.contains(student.getId()))
        .collect(Collectors.toSet());

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=173280&siteId=1