List<DataPermissionSchema> dataPermissionSchemaList = new ArrayList<>(); dataPermissionSchemaEoList.forEach(dataPermissionSchemaEo -> { List<SchemaRowRule> schemaRowRules = new ArrayList<>(); List<SchemaColumnRule> schemaColumnRules = new ArrayList<>(); userRowRuleList.stream() .filter(schemaRule -> dataPermissionSchemaEo.getDatabaseCode().equals(schemaRule.getDatabaseCode()) && dataPermissionSchemaEo.getSchemaCode().equals(schemaRule.getSchemaCode())) .forEach(schemaRowRules::add); userColumnRuleList.stream() .filter(schemaRule -> dataPermissionSchemaEo.getDatabaseCode().equals(schemaRule.getDatabaseCode()) && dataPermissionSchemaEo.getSchemaCode().equals(schemaRule.getSchemaCode())) .forEach(schemaColumnRules::add); if(!schemaRowRules.isEmpty() || !schemaColumnRules.isEmpty()) { DataPermissionSchema dataPermissionSchema = new DataPermissionSchema(); dataPermissionSchema.setDatabaseCode(dataPermissionSchemaEo.getDatabaseCode()); dataPermissionSchema.setSchemaCode(dataPermissionSchemaEo.getSchemaCode()); dataPermissionSchema.setSchemaRowRuleList(schemaRowRules); dataPermissionSchema.setSchemaColumnRuleList(schemaColumnRules); dataPermissionSchemaList.add(dataPermissionSchema); }}); UserAgent.setDataPermissionSchema(dataPermissionSchemaList);代码优化代码优化
时间: 2023-12-14 07:40:09 浏览: 83
C# List<T>用法
可以使用Java 8中的stream()和map()方法,将代码优化如下:
```
List<DataPermissionSchema> dataPermissionSchemaList = dataPermissionSchemaEoList.stream().map(dataPermissionSchemaEo -> {
List<SchemaRowRule> schemaRowRules = userRowRuleList.stream()
.filter(schemaRule -> dataPermissionSchemaEo.getDatabaseCode().equals(schemaRule.getDatabaseCode())
&& dataPermissionSchemaEo.getSchemaCode().equals(schemaRule.getSchemaCode()))
.collect(Collectors.toList());
List<SchemaColumnRule> schemaColumnRules = userColumnRuleList.stream()
.filter(schemaRule -> dataPermissionSchemaEo.getDatabaseCode().equals(schemaRule.getDatabaseCode())
&& dataPermissionSchemaEo.getSchemaCode().equals(schemaRule.getSchemaCode()))
.collect(Collectors.toList());
if(!schemaRowRules.isEmpty() || !schemaColumnRules.isEmpty()) {
DataPermissionSchema dataPermissionSchema = new DataPermissionSchema();
dataPermissionSchema.setDatabaseCode(dataPermissionSchemaEo.getDatabaseCode());
dataPermissionSchema.setSchemaCode(dataPermissionSchemaEo.getSchemaCode());
dataPermissionSchema.setSchemaRowRuleList(schemaRowRules);
dataPermissionSchema.setSchemaColumnRuleList(schemaColumnRules);
return dataPermissionSchema;
}
return null;
}).filter(Objects::nonNull).collect(Collectors.toList());
UserAgent.setDataPermissionSchema(dataPermissionSchemaList);
```
使用stream()方法将dataPermissionSchemaEoList转换成stream,然后使用map()方法将每个dataPermissionSchemaEo转换为DataPermissionSchema对象,并将其添加到List中。在map()方法中,可以使用stream()和filter()方法过滤掉不需要的数据,然后使用collect()方法将其转换为List。最后使用filter()方法过滤掉null值,并使用collect()方法将其转换为List。
阅读全文