有这段代码:
public Map<Job, Collection<JobTransform>> getPartitioning() {
Map<Job, Collection<JobTransform>> partitioning = new IdentityHashMap<>();
for (JobTransform jobTransform : content) {
Job job = jobTransform.getJob();
Collection<JobTransform> collection = partitioning.get(job);
if (collection == null) {
collection = new LinkedList<>();
partitioning.put(job, collection);
}
collection.add(jobTransform);
}
return partitioning;
}
并且“content”是实现此方法的类的构造函数参数,如何使用 Java 中的 Stream API 将 for-each 循环转换为代码?现在我只有
content.stream().map(JobTransform::getJob)
而且我不知道如何进一步利用每项工作。我使用的 API 有误吗?请帮助我改进我的代码!
最佳答案
content.stream().collect(Collectors.groupingBy(JobTransform::getJob, IdentityHashMap::new, Collectors.toCollection(LinkedList::new)));
这将执行与您的非流代码完全相同的操作。
关于java - 用 Java 中的流 API 调用替换 for-each 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38123036/