У меня есть объект как List<taskDetail> taskDetails
и TaskDetail DTO
как
public class TaskDetail {
private Task task ;
private int taskId;
private int taskDetailId;
private String status;
...
}
А Task DTO
похоже на
public class Task{
private int taskId;
private int totalActive;
.....
}
, поэтому я должен проверить все записи внутри taskDetails
и получить общее количество подсчетов против taskId
, которые ACTIVE
как статус и установлены внутри task's totalActive
объекта, имеющего соответствие taskId
внутри embedded task object
внутри taskDetails
Я могу сделать это с помощью java7, но застрял в использовании java8.
Я использую Map
и храню taskId
в качестве ключа
Map<Integer,Integer> myTaskMap = new HashMap<Integer,Integer>();
taskDetails.forEach(taskEdt->{
int count =myTaskMap.get(taskEdt.getTask().getTaskId());
if(taskEdt.getStatus() == Status.ACTIVE) {
coun>0? myTaskMap.put(taskEdt.getTask().getTaskId(), count+1);:myTaskMap.put(taskEdt.getTask().getTaskId(), 1)
}
});
taskDetails.forEach(taskEdt->{
if(null !=myTaskMap.get(taskEdt.getTask().getTaskId())) {
taskEdt.getTask().setTotalActive(myTaskMap.get(taskEdt.getTask().geTaskId()));
}
});
и снова в ForEach
значение установки с карты внутри Task;s totalActive
объект внутри taskDetails
.