方式1
Map<String, Column> newColumnMap= new HashMap<>();
originalColumnMap.entrySet().stream().forEach(x -> newColumnMap.put(x.getKey(), new Column(x.getValue())));
方式2
public class Defensive {
public static void main(String[] args) {
Map<String, Column> original = new HashMap<>();
original.put("foo", new Column());
original.put("bar", new Column());
Map<String, Column> copy = original.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey,
e -> new Column(e.getValue())));
System.out.println(original);
System.out.println(copy);
}
static class Column {
public Column() {}
public Column(Column c) {}
}
}
项目中实际使用案例
//目前得到的map是 Map<String, StaffModel>,需要的map是Map<String, StaffVO>
//需要处理map,将StaffModel转换为StaffVO
Map<String, StaffModel> map = staffService.listStaffsByIds(idMap);
if(map == null || map.isEmpty()) return null;
return map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey,
e -> BeanCopierUtil.copy(e.getValue(),StaffVO::new,StaffVO.class)));