Java lambda 表达式:如何连接哈希图中的键和值集?

Java lambda expression: How to concatenate key and set of values from a hashmap?

我是 lambda 表达式的新手,目前我遇到了一个我想解决的任务(只是为了学习 lambda)。

给定的是一个映射 Map<String, Set<Integer>>,我想遍历条目集,将键及其值连接为字符串。

地图可能如下所示:

"x", [1,3,5]

"y", [2,3]

"z", [2,4]

我想以这个字符串表示形式结束:

"x: 1, 3, 5; y: 2, 3; z: 2, 4"

我什至不知道从哪里开始。可以在 Internet 上找到的所有示例都只是循环列表或具有单个值(而不是集合)的映射,并且大多数时候它们所做的只是 System.out.println()。我什至不知道如何开始……forEach 还是 stream?我想我需要一个(或多个?)可以加入这些值的收集器,但我只是不明白如何实现这一点。这甚至可以用一个表达式吗?

有人可以给我提示吗?

像这样

Map<String, Set<Integer>> map = new HashMap<>();
// fill map here
String result = map.entrySet().stream()
        .map(x -> x.getKey() + ": " + x.getValue().stream()
                .map(Object::toString)
                .collect(Collectors.joining(", ")))
        .collect(Collectors.joining("; "));