文章简介
List(Object)转成List(Map(String, Object))或其他的List(Object)
- List(Object)转成List(Map(String, Object))或其他的List(Object)
利用Java 8 Stream实现,以及和传统的比较
问题描述:有一个用户列表List<User>,须将每个User部分字段提取出来,重新放入一个Map中,然后将生成的Map放入List中。
①传统的:
public static List<Map<String, Object>> toListMap(List<User> userList) {
List<Map<String, Object>> result = new ArrayList<>();
Map<String, Object> map;
for (User user : userList) {
map = new HashMap<>();
map.add("username", user.getUserName);
map.add("age", user.getAge);
map.add("gender", user.getGender);
result.add(map);
}
return result;
}
②使用Java 8 stream后,代码如下:
private Map<String, Object> toMap(User user) {
Map<String, Object> map = new HashMap<>();
map.add("username", user.getUserName);
map.add("age", user.getAge);
map.add("gender", user.getGender);
return map;
}
List<Map<String, Object>> data = userList.stream()
.map(this::toMap)
.collect(Collectors.toList());
List<KnowMFileBean> knowMFLists = setAuthorityParamBean.getKnowMFLists();
List<KnowledgeMFileReceiver> knowMFList = knowMFLists.stream().map(this::toKnowledgeMFileReceiver).collect(Collectors.toList());
private KnowledgeMFileReceiver toKnowledgeMFileReceiver(KnowMFileBean knowMFileBean){
KnowledgeMFileReceiver knowledgeMFileReceiver = new KnowledgeMFileReceiver();
knowledgeMFileReceiver.setReceiver(knowMFileBean.getReceiver());
knowledgeMFileReceiver.setType(knowMFileBean.getType());
knowMFileBean.setDlPermission(knowMFileBean.getDlPermission());
knowMFileBean.setViewPermission(knowMFileBean.getViewPermission());
return knowledgeMFileReceiver;
}