if (names.contains(",")) { nameList = Arrays.asList(names.split(",")); noMatchList.addAll(nameList); // 获取重复内容 Map<String, Integer> map = new HashMap<>(); for (String str : nameList) { int i = 1; if (map.get(str) != null) { i = map.get(str) + 1; } map.put(str, i); } for (String s : map.keySet()) { if (map.get(s) > 1) { repeatList.add(s); repeatSize += map.get(s) - 1; } } } else { nameList.add(names); noMatchList.addAll(nameList); }优化代码
时间: 2024-02-10 10:12:07 浏览: 124
python中将zip压缩包转为gz.tar的方法
根据您提供的代码,我看到其中可以进行如下优化:
1. 可以使用Java 8的Stream API替代for循环,使代码更加简洁,同时也提高了可读性。
2. 可以使用Java 8的Optional类来简化代码。
下面是优化后的代码:
```
List<String> nameList = Arrays.asList(names.split(","));
noMatchList.addAll(nameList);
// 获取重复内容
Map<String, Long> map = nameList.stream().collect(Collectors.groupingBy(s -> s, Collectors.counting()));
List<String> repeatList = map.entrySet().stream().filter(entry -> entry.getValue() > 1).map(Map.Entry::getKey).collect(Collectors.toList());
int repeatSize = repeatList.stream().mapToInt(s -> Math.toIntExact(map.get(s) - 1)).sum();
```
注:由于不知道您代码中的数据类型,上面的代码仅供参考。
阅读全文