业务场景
我们拥有一个名为t_setting的设置表, 主要功能为记录用户的各种系统设置信息
但在前端进行展示操作时, 使用的是一个表单而非设置实体的数组(即List<SettingEntity>)
为了处理这种情况, 后台提供一个Map对象作为返回值, 可以理解为SystemSettingVO, 其中属性为每个SettingEntity的code, 属性的值为value
如何把List<SettingEntity>转为Map呢?
方案
先来看一下我们的SettingEntity
@Data
public class SettingEntity extends IdableEntity {
private String id;
private String code;
private String value;
}
复制代码
我们将它转换为一个Map, 使用Java8的新特性Stream即可
public class SettingService {
public Map<String, String> getSettingVO(List<SettingEntity> settings) {
return settings.stream().collect(Collectors.toMap(SettingEntity::getCode, SettingEntity::getValue);
}
}
复制代码
如果需要对code和value进行处理, 比如将它们都转换为int, 可以这么写:
public class SettingService {
public Map<Integer, Integer> getSettingVO(List<SettingEntity> settings) {
return settings.stream().collect(Collectors.toMap(setting -> Integer.parseInt(setting.getCode()), setting -> Integer.parseInt(setting.getValue())));
}
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END