Map<String, String> configMap = blogConfigs.stream().collect(Collectors.toMap(BlogConfig::getConfigName, BlogConfig::getConfigValue));
时间: 2023-06-26 18:08:34 浏览: 60
这段代码使用了Java 8中的Stream API,将一个List<BlogConfig>对象转化为一个Map<String, String>对象。具体来说,BlogConfig对象中包含两个属性:configName和configValue,这些属性分别用作Map的key和value。collect(Collectors.toMap())方法接受两个函数参数,第一个函数用于从BlogConfig对象中提取key,第二个函数用于提取value。最终,这个方法返回一个Map对象,其中包含了所有的BlogConfig对象的configName和configValue。
相关问题
优化代码 private List<String> getConfigDataCodeByTypeCode(String typeCode) { List<CrmRdDictConfig> crmRdDictConfigs = configService.getConfigDataCodeByTypeCode(typeCode); List<String> codes = crmRdDictConfigs.stream().map(temp -> temp.getDataCode()).collect(Collectors.toList()); return codes; }
这段代码可以进行一些优化,比如可以使用lambda表达式来简化代码,如下所示:
private List<String> getConfigDataCodeByTypeCode(String typeCode) {
return configService.getConfigDataCodeByTypeCode(typeCode)
.stream()
.map(CrmRdDictConfig::getDataCode)
.collect(Collectors.toList());
}
这样可以使代码更加简洁易读。
labelList.stream().collect(Collectors.groupingBy(TWebLabelConfig::getModel)) 将key转换为小写
可以使用 `Collectors.groupingBy()` 方法的重载版本,该版本允许自定义 `Map` 实现,并且可以在收集前对键进行处理。可以按照以下方式进行操作:
```java
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
// ...
Map<String, List<TWebLabelConfig>> result =
labelList.stream()
.collect(Collectors.groupingBy(
config -> config.getModel().toLowerCase(Locale.ROOT),
LinkedHashMap::new, Collectors.toList()
));
```
在此示例中,我们使用 `Locale.ROOT` 将字符串转换为小写,并指定使用 `LinkedHashMap` 作为 `Map` 实现,以保留顺序。
阅读全文