gpt4 book ai didi

java - 如何将 Map> 流式传输到 Stream> 中?

转载 作者:搜寻专家 更新时间:2023-10-30 21:06:47 24 4
gpt4 key购买 nike

我有一个 Map<String, List<Object>> .

我怎样才能把它变成 Entry<String, Object> 的 Stream这样我就可以构造一个串联查询 String

q1    a, b
q2 c, d

进入

q1=a&q1=b&q2=c&q2=d

我目前正在这样做。

if (params != null && !params.isEmpty()) {
final boolean[] flag = new boolean[1];
params.forEach((n, vs) -> {
vs.forEach(v -> {
builder.append(flag[0] ? '&' : '?')
.append(n)
.append('=')
.append(v);
if (!flag[0]) {
flag[0] = true;
}
});
});
}

最佳答案

好吧,您不必生成 Entry<String, Object> .您可以使用 flatMap获取键=值String s 并直接构造查询 String使用 Collectors.joining :

String query =
map.entrySet()
.stream()
.flatMap(e -> e.getValue().stream().map(v -> e.getKey() + '=' + v))
.collect(Collectors.joining("&"));

输入:

{q1=[a, b], q2=[c, d]}

输出:

q1=a&q1=b&q2=c&q2=d

关于java - 如何将 Map<String, List<Object>> 流式传输到 Stream<Entry<String, Object>> 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38813167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com