我有以下方法将单线转换为 map
想用java8把它转成单行语句
输入竖线分隔的字符串 例如。: 状态:我的状态|数据1:值1
public Map<String, String> getMap(String attributeUpdate){
Map<String, String> attr = new HashMap<>();
if(StringUtils.isNotEmpty(attributeUpdate)){
List<String> a = Arrays.asList(attributeUpdate.split("\\|"));
for (String s : a) {
String[] key_val = s.split(":");
if(key_val.length == 2) {
attr.put(key_val[0], key_val[1]);
}
}
}
return attr;
}
最佳答案
请尝试以下代码。它工作正常。
String s = new String("status:MYSTATUS|data1:value1");
Arrays.stream(s.split("\\|")).map(stringArray -> stringArray.split(":"))
.filter(stringArray -> stringArray.length == 2)
.collect(Collectors.toMap(stringArray ->stringArray[0], stringArray-> stringArray[1],(oldvalue,newvalue)->newvalue));
谢谢
关于java - 你将如何在 java8 中将方法转换为单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62080019/