jdk8使用lambda将map转换为新map

方式1

 Map 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 original = new HashMap<>();
    original.put("foo", new Column());
    original.put("bar", new Column());

    Map 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,需要的map是Map
//需要处理map,将StaffModel转换为StaffVO
Map 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)));

你可能感兴趣的:(java,java,开发语言,分布式,linux)