作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在我的项目中遇到了以下代码。我想知道是否可以通过使用 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-stream ,提高代码可读性的一种方法是将其转换为:
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/
我是一名优秀的程序员,十分优秀!