Отображение одного объекта в другой с агрегацией и группировкой
У меня есть класс
class Q {
String username;
int taskId;
double timediff;
// constructor
}
, и мне нужно преобразовать его в
class ToQ {
String username;
int noOfTasks;
double sum;
// constructor
}
Так что намерениеявляется группой по имени пользователя, не содержит никаких идентификаторов задач, суммы timediff.
Список этого
List<Q> qs = new ArrayList<>();
qs.add(new Q("tom", 2, 2.0));
qs.add(new Q("tom", 6, 1.0));
qs.add(new Q("harry", 8, 0.03));
Должен иметь вывод ToQ как
new ToQ("tom",2,3);
new ToQ("harry",1,0.03);
Я пытался сФункция группировки, но она генерирует HashMap, но не знает, как преобразовать в объект.
Map<String, Double> collect = qs
.stream()
.collect(groupingBy(Q::getUsername, summingDouble(Q::getLocalDateTime)));