【发布时间】:2019-02-06 01:11:49
【问题描述】:
我在项目中遇到了以下代码。我想知道它是否可以通过使用 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
【问题讨论】:
-
以什么方式优化?
-
有几个经常相互冲突的目标需要优化。例如:速度、内存消耗、代码长度、可读性、重用性……
-
速度优化
-
流式传输几乎总是比常规 for 循环慢。
标签: java optimization collections java-8 java-stream