Map<String, Map<String, Long>> result = linkupYuReturnDTOList.stream() .collect(Collectors.groupingBy(ResignLinkupEdDto::getProvice, Collectors.groupingBy(re -> re.getLeavedate().substring(0,7), Collectors.counting()))); result.forEach((key,value) ->{ System.out.println(key+":"+value); });如何更改返回值样式为 北京:{[2022-05,1], [2022-061]}
时间: 2023-05-31 09:06:51 浏览: 75
要更改返回值样式为 "北京:{[2022-05,1], [2022-06,1]}",可以使用下面的代码:
```
Map<String, Map<String, Long>> result = linkupYuReturnDTOList.stream()
.collect(Collectors.groupingBy(ResignLinkupEdDto::getProvice,
Collectors.groupingBy(re -> re.getLeavedate().substring(0,7),
Collectors.counting())));
result.forEach((key,value) ->{
System.out.print(key + ":");
System.out.print(value.entrySet().stream()
.map(entry -> "[" + entry.getKey() + "," + entry.getValue() + "]")
.collect(Collectors.joining(", ", "{", "}")));
System.out.println();
});
```
这里使用了 `entrySet().stream()` 将 `Map<String, Long>` 转换为 `Stream<Map.Entry<String, Long>>`,并使用 `map()` 将每个 `Map.Entry<String, Long>` 转换为字符串,最后使用 `joining()` 将字符串连接起来。注意要使用 `print()` 方法而不是 `println()` 方法,否则每个省份的输出会换行。
阅读全文