我有一个这样的课:
class MultiDataPoint {
private DateTime timestamp;
private Map<String, Number> keyToData;
}
Run Code Online (Sandbox Code Playgroud)
我想为每个MultiDataPoint生成
class DataSet {
public String key;
List<DataPoint> dataPoints;
}
class DataPoint{
DateTime timeStamp;
Number data;
}
Run Code Online (Sandbox Code Playgroud)
当然,在多个MultiDataPoints中,"key"可以是相同的.
所以给定一个List<MultiDataPoint>,我如何使用Java 8流转换为List<DataSet>?
这就是我目前在没有流的情况下进行转换的方式:
Collection<DataSet> convertMultiDataPointToDataSet(List<MultiDataPoint> multiDataPoints)
{
Map<String, DataSet> setMap = new HashMap<>();
multiDataPoints.forEach(pt -> {
Map<String, Number> data = pt.getData();
data.entrySet().forEach(e -> {
String seriesKey = e.getKey();
DataSet dataSet = setMap.get(seriesKey);
if (dataSet == null)
{
dataSet = new DataSet(seriesKey);
setMap.put(seriesKey, dataSet);
}
dataSet.dataPoints.add(new DataPoint(pt.getTimestamp(), …Run Code Online (Sandbox Code Playgroud)