gpt4 book ai didi

java - 使用java流将对象数组变为大写

转载 作者:行者123 更新时间:2023-12-02 11:02:30 35 4
gpt4 key购买 nike

我有 HashMap 示例数组

[
{
name:"Sudeep"
},
{
name:"Sudeep"
}
]

我想使用java流为java中的每个对象创建大写名称。使用它时,它的响应如下

[
"SUDEEP",
"SUDEEP"
]

(List) string.parallelStream().map(s -> ((HashMap<String,String>)s).get(key).toUpperCase()).collect(Collectors.toList());

请帮忙

最佳答案

我有 HashMap 数组,这意味着你有:

Map<String, String>[] map = new HashMap[2];
map[0] = new HashMap<String, String>() {{
put("name", "Sudeep");
}};
map[1] = new HashMap<String, String>() {{
put("name", "Sudeep");
}};

将您可以使用的特定键的所有值都大写:

String key = "name";
List<String> result = Arrays.stream(map)
.map(m -> m.get(key).toUpperCase())
.collect(Collectors.toList());

输出

[SUDEEP, SUDEEP]
<小时/>

如果您想编辑相同的 map 数组,您可以使用:

String key = "name";
map = Arrays.stream(map)
.map(s -> {
s.computeIfPresent(key, (k, v) -> s.get(key).toUpperCase());
return s;
}).toArray(s -> new HashMap[s]);
Arrays.stream(map).forEach(System.out::println);

输出

{name=SUDEEP}
{name=SUDEEP}
<小时/>

如果您在解析 json 并获取信息时遇到困难,这里是解决问题的快速方法(我正在使用 org.json ):

import org.json.JSONArray;
import java.util.*;

public class Mcve {

public static void main(String[] args) {
String string = "[{name:\"Sudeep\"},{name:\"Sudeep\"}]";
JSONArray parsing = new JSONArray(string);

Map<String, String>[] map = new HashMap[parsing.length()];
for (int i = 0; i < parsing.length(); i++) {
String value = parsing.getJSONObject(i).getString("name");
map[i] = new HashMap<>() {{
put("name", value);
}};
}
//... one of the solution that I already provide
}
}

关于java - 使用java流将对象数组变为大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51216803/

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