gpt4 book ai didi

java - 有没有办法使用 java8 进一步优化下面的代码?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:44:17 26 4
gpt4 key购买 nike

我在我的项目中遇到了以下代码。我想知道是否可以通过使用 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());

关于java - 有没有办法使用 java8 进一步优化下面的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52108059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com