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 08:06:06 浏览: 75
');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());
}
public static String getDictValue(String dictType, String dictLabel, String separator) { StringBuilder propertyString = new StringBuilder(); List<SysDictData> datas = getDictCache(dictType); if (containsAny(separator, dictLabel) && StringUtils.isNotEmpty(datas)) { for (SysDictData dict : datas) { for (String label : dictLabel.split(separator)) { if (label.equals(dict.getDictLabel())) { propertyString.append(dict.getDictValue()).append(separator); break; } } } } else { for (SysDictData dict : datas) { if (dictLabel.equals(dict.getDictLabel())) { return dict.getDictValue(); } } } return stripEnd(propertyString.toString(), separator); } 优化这段代码
首先,建议使用Java8的Stream API来简化代码。
代码优化建议如下:
```
public static String getDictValue(String dictType, String dictLabel, String separator) {
List<SysDictData> datas = getDictCache(dictType);
if (containsAny(separator, dictLabel) && StringUtils.isNotEmpty(datas)) {
return datas.stream()
.filter(dict -> Arrays.stream(dictLabel.split(separator)).anyMatch(label -> label.equals(dict.getDictLabel())))
.map(SysDictData::getDictValue)
.collect(Collectors.joining(separator));
} else {
return datas.stream()
.filter(dict -> dictLabel.equals(dict.getDictLabel()))
.map(SysDictData::getDictValue)
.findFirst()
.orElse(null);
}
}
```
这段代码使用Stream API来替换了原来的for循环,让代码更加简洁易读。同时,使用`.findFirst().orElse(null)`来代替原来的循环来取第一个元素,让代码更加高效。
阅读全文