如何将模型列表(作业)转换为Map <long,job =“”>;基于Lambda的条件

时间:2017-09-22 16:20:42

标签: lambda java-8

如何将List作业转换为映射jobMap;根据条件。

条件是,job.getParentId()== null

下面的行将所有作业列表转换为映射,但我需要具备上述条件。

Map<Long, String> parentJobs = jobs.stream().collect(
           Collectors.toMap(JobLog::getId, JobLog::getName));

下面是Job模型的片段。

class Job{
 Long id;
 String name;
 Long parentJob;
}

1 个答案:

答案 0 :(得分:1)

您可以在收集之前过滤流。

Map<Long, String> parentJobs = jobs.stream()
    .filter(job -> job.getParentId() == null)
    .collect(Collectors.toMap(JobLog::getId, JobLog::getName));