У меня есть поток MetricGroup
, где:
public class MetricGroup {
private String application;
private int uploadedDocs;
private long uploadedKbs;
// getters and setters
}
Мне нужно обобщить все метрики приложения. Я имею в виду, что для каждого приложения (MetricGroup.application
) мне нужно добавить все metric.uploadedDocs
в sumMetric.uploadedDocs
и metric.uploadedKds
в sumMetric.uploadedKbs
.
Я понял, мне нужен какой-то groupingBy
Stream.of(
new MetricGroup("app1", 1,100),
new MetricGroup("app1", 1,300),
new MetricGroup("app2", 1,200)
)
.collect(Collector.groupingBy(MetricGroup::getApplication, accumulator??, combiner??)
Результатом будет поток с:
< MetricGroup("app1", 2, 400) , MetricGroup("app2", 1, 200) >
Есть идеи?