如何在Java8中对数据进行分类(筛选)

如何在Java8中对数据进行分类(筛选),java,collections,filtering,Java,Collections,Filtering,我有数据点课。类的定义如下: public class ExciseReportDataPoint { private String liquorCategoryName; private String liquorName; private String nozzleName; private String bottleExciseNumber; private int fixedPegSize; private double costPerPe

我有数据点课。类的定义如下:

public class ExciseReportDataPoint {
    private String liquorCategoryName;
    private String liquorName;
    private String nozzleName;
    private String bottleExciseNumber;
    private int fixedPegSize;
    private double costPerPeg;
    private int bottleSize;
    private int consumedVolumeInMl;
    private int volumeInBottleInMl;
    private boolean isBottleEmpty;
    private int totalNoOfPegsPoured;
    private double totalSaleValue;
    // Getters and setters for all

}
我正在从我的API获取
列表
。我想展示一个表格报告,其中行必须首先用LiquiorCategory分类,然后用Liquir分类

我想将
列表
转换为
地图
。我不确定使用流和收集器是否可行


有人对此有看法吗?

您可以对列表进行多次分组:

Map<String, Map<String, List<ExciseReportDataPoint>>> map = list.stream().collect(Collectors.groupingBy(ExciseReportDataPoint::getLiquorCategoryName, Collectors.groupingBy(ExciseReportDataPoint::getLiquorName)));
Map Map=list.stream().collect(Collectors.groupingBy(execureReportDataPoint::GetLiquiorCategoryName,Collectors.groupingBy(execureReportDataPoint::GetLiquiorName));

您可以对列表进行多次分组:

Map<String, Map<String, List<ExciseReportDataPoint>>> map = list.stream().collect(Collectors.groupingBy(ExciseReportDataPoint::getLiquorCategoryName, Collectors.groupingBy(ExciseReportDataPoint::getLiquorName)));
Map Map=list.stream().collect(Collectors.groupingBy(execureReportDataPoint::GetLiquiorCategoryName,Collectors.groupingBy(execureReportDataPoint::GetLiquiorName));

您试过什么吗?请给我们看看。你试过什么吗?请给我们看看。