ファイズ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;
}
注意: unfilteredSet
とadminAreaSet
の異なる子タイプを保持Student
また:
質問がでタグ付けされているのでJavaのストリーム、コードの可読性を向上させるための一つの方法は、としてそれを変換することができます。
Set<String> adminAreaID = getAdminStudents().stream()
.map(Student::getId)
.collect(Collectors.toSet());
return getAllStudents().stream()
.filter(student -> adminAreaID.contains(student.getId()))
.collect(Collectors.toSet());