我有以下对象。
class RowData
{
private List<RowCell> cells;
}
class RowCell
{
private String headerName;
private String value;
}
我已将以下 CSV 加载到这些对象中。
Country,Gender,Income
IND,M,23531
IND,F,2331
IND,M,2311
SNG,M,22111
HYD,F,20012
我需要做什么 ?
查找按国家和性别分组的平均收入。
到目前为止我做了什么?
List<String> criteria = Arrays.asList("Country", "Gender", "Income");
List<RowData> rowDataStream = rows.stream().map(rowData -> new RowData(getMatchingCells(criteria, rowData))).collect(Collectors.toList());
// group by country
Map<String, List<RowData>> collect = rowDataStream.stream().collect(groupingBy(rowData -> rowData.getRowCells().get(0).getValue()));
// group everything above by gender now.
Map<Map<String, List<RowData>>, List<List<RowData>>> collect1 = collect.values().stream().collect(groupingBy(rowData -> rowData.stream().collect(groupingBy(o -> o.getRowCells().get(1).getValue()))));
问题
这是正确的方法吗?
这似乎过于复杂。你能建议一个更好的方法吗?
杨__羊羊
紫衣仙女
一只甜甜圈
相关分类