开发者社区> 问答> 正文

在Java 8中合并可恢复的Hashmap

我需要合并多个HashMap小号

map1:

{"41666":
 {"oyo_id":"KSD900",
 "contracted_rooms":null,
 "status":"live"
 },
 "41667":
 {"oyo_id":"JGH900",
 "contracted_rooms":null,
 "status":"live"
 }
}

map2:

{"41666":
 {"oyo_id":null,
 "contracted_rooms":31,
 "status":null
 },
 "41667":
 {"oyo_id":null,
 "contracted_rooms":3,
 "status":null
 }
}

预期结果

{"41666":
 {"oyo_id":"KSD900",
 "contracted_rooms":31,
 "status":"live"
 },
 "41667":
 {"oyo_id":"JGH900",
 "contracted_rooms":3,
 "status":"live"
 }
}

我尝试过的

AssignedPropertiesResponse:

@JsonProperty("oyo_id")
private String oyoId;

@JsonProperty("status")
private String status;

@JsonProperty("contractedRoomsCount")
private Double contracted_rooms_count;
AssignedPropertiesResponseList:

HashMap<String, AssignedPropertiesResponse>

map1.putAll(map2);

但这是将map2的值覆盖到map2中。

问题来源:Stack Overflow

展开
收起
montos 2020-03-27 16:15:05 394 0
1 条回答
写回答
取消 提交回答
  • 这是一个示例性的实现:

    map2.forEach((key, value) -> {
        AssignedPropertiesResponse r = map1.get(key);
        if(r != null) r.setContracted_rooms_count(value.getContracted_rooms_count());
    });
    

    PS:变量名称是用camelCase用Java编写的。

    回答来源:Stack Overflow

    2020-03-27 16:15:26
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载