如何使用流来执行此嵌套 for 循环

问题描述 投票:0回答:0

这已经嵌套 for 循环并且 Sonar 正在抱怨。如果可以降低复杂性,我想使用流

for (String repository : repositories) {
            UsageReportModel usageReportModel = (UsageReportModel) results.get(repository);
            if (usageReportModel != null) {
                for (UsageReportCategoryModel categoryModel : usageReportModel.getCategories()) {
                    if (SUBSCRIBER_DATASET_CATEGORY.equalsIgnoreCase(categoryModel.getName())) {
                        for (UsageReportCategoryModel subCategoryModel : categoryModel.getSubCategories()) {
                            if (datasets.get(subCategoryModel.getName()) != null) {
                                datasets.get(subCategoryModel.getName()).addConsumedStorage(subCategoryModel.getUsage());
                            }
                        }
                    }

                    if (SUBSCRIBER_DATASET_CATEGORY_PREVIOUS.equalsIgnoreCase(categoryModel.getName()) && datasets.get(SUBSCRIBER_DATASET_OTHER) != null) {
                        datasets.get(SUBSCRIBER_DATASET_OTHER).addConsumedStorage(categoryModel.getUsage());
                    }
                }
            }
        }

for-loop nested stream
© www.soinside.com 2019 - 2024. All rights reserved.