为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Java 8 中拼合映射中的列表

如何在 Java 8 中拼合映射中的列表

慕后森 2022-09-22 15:48:37

如何从整数映射转到字符串列表,例如:

<1, ["a", "b"]>,
<2, ["a", "b"]>

到字符串的拼合列表,例如:

["1-a", "1-b", "2-a", "2-b"]

爪哇 8


查看完整描述

2 回答

?
白板的微信

TA贡献1537条经验 获得超3个赞

您可以在值上使用:flatMap

map.values()
   .stream()
   .flatMap(List::stream)
   .collect(Collectors.toList());

或者,如果您要使用地图条目,则可以使用Holger指出的代码:

map.entries()
   .stream()
   .flatMap(e -> e.getValue().stream().map(s -> e.getKey() + s))
   .collect(Collectors.toList());


查看完整回答
反对 回复 2022-09-22
?
侃侃无极

TA贡献1688条经验 获得超10个赞

你可以使用这个:

List<String> result = map.entrySet().stream()
        .flatMap(entry -> entry.getValue().stream().map(string -> entry.getKey() + "-" + string))
        .collect(Collectors.toList());

这将循环访问映射中的所有条目,将所有值连接到其键并将其收集到新列表中。

结果将是:

[1-a, 1-b, 2-a, 2-b]


查看完整回答
反对 回复 2022-09-22

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信