public static List<Map<String, String>> getConnectParamMapList(String connectParamsStr) { String[] split01 = StringUtils.split(connectParamsStr, '&'); LinkedList<Map<String, String>> resultList = new LinkedList<>(); for (String s : split01) { String[] split02 = StringUtils.split(s, '='); String connectParamName = split02[0]; String connectParamValue = split02[1]; Map<String, String> connectParamMap = new HashMap<>(); connectParamMap.put(connectParamName, connectParamValue); resultList.add(connectParamMap); } return resultList; }优化这段代码
时间: 2023-05-20 12:06:06 浏览: 46
');List<Map<String, String>> connectParamMapList = new ArrayList<>();
for (String s : split01) {
String[] split02 = StringUtils.split(s, ',');
Map<String, String> connectParamMap = new HashMap<>();
for (String s1 : split02) {
String[] split03 = StringUtils.split(s1, '=');
connectParamMap.put(split03[0], split03[1]);
}
connectParamMapList.add(connectParamMap);
}
return connectParamMapList;
}
这段代码的作用是什么?
相关问题
优化这段代码 public static List<Map<String, String>> getConnectParamMapList(String connectParamsStr) { String[] split01 = StringUtils.split(connectParamsStr, '&'); LinkedList<Map<String, String>> resultList = new LinkedList<>(); for (String s : split01) { String[] split02 = StringUtils.split(s, '='); String connectParamName = split02[0]; String connectParamValue = split02[1]; Map<String, String> connectParamMap = new HashMap<>(); connectParamMap.put(connectParamName, connectParamValue); resultList.add(connectParamMap); } return resultList; }
'); List<Map<String, String>> connectParamMapList = new ArrayList<>();
for (String s : split01) {
String[] split02 = StringUtils.split(s, ',');
Map<String, String> connectParamMap = new HashMap<>();
for (String s1 : split02) {
String[] split03 = StringUtils.split(s1, '=');
connectParamMap.put(split03[0], split03[1]);
}
connectParamMapList.add(connectParamMap);
}
return connectParamMapList;
}
可以使用 Java 8 的 Stream API 来简化代码,如下所示:
public static List<Map<String, String>> getConnectParamMapList(String connectParamsStr) {
return Arrays.stream(connectParamsStr.split("\\r?\\n"))
.map(s -> Arrays.stream(s.split(","))
.map(s1 -> s1.split("="))
.collect(Collectors.toMap(s2 -> s2[0], s2 -> s2[1])))
.collect(Collectors.toList());
}
Java中 list<JSONObject> 转 MultiValueMap<String, String>
可以使用Java 8 Stream API将`List<JSONObject>`转换为`MultiValueMap<String, String>`,具体代码如下:
```java
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.stream.Collectors;
public class JsonUtils {
public static MultiValueMap<String, String> convert(List<JSONObject> list) {
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
list.stream().flatMap(jsonObject -> jsonObject.keySet().stream())
.distinct()
.forEach(key -> {
List<String> values = list.stream()
.map(jsonObject -> jsonObject.getString(key))
.filter(StringUtils::hasText)
.collect(Collectors.toList());
map.put(key, values);
});
return map;
}
}
```
此代码中,我们使用了Spring提供的`MultiValueMap`来表示Map中一个key可以对应多个value,使用Stream API将List中所有的JSONObject的key遍历并去重,然后将每个key对应的value从List中取出来并放进`MultiValueMap`中即可。
需要注意的是,此代码需要引入Spring的依赖,因为`MultiValueMap`属于Spring框架的一部分。