The method getOrDefault(Object, List<String>) in the type Map<Character,List<String>> is not applicable for the arguments (char, new HashSet<>())
时间: 2023-11-11 18:25:34 浏览: 137
Calculations of time-of-flight aberrations in practical electrostatic electron lenses using the differential algebraic method
这个错误是因为在使用 `getOrDefault()` 方法时,第二个参数的类型应该是 `List<String>`,但是你传递了一个 `HashSet<String>` 类型的对象。你可以将 `idiomSet` 的类型从 `HashSet<String>` 改为 `ArrayList<String>`,或者使用 `Collections.singleton(idiom)` 方法将成语转换为只包含一个元素的 Set,再将 Set 转换为 List,如下所示:
```java
List<String> idiomList = new ArrayList<>();
Map<Character, List<String>> idiomMap = new HashMap<>();
for (String idiom : idiomList) {
if (!idiom.isEmpty()) {
char lastChar = idiom.charAt(idiom.length() - 1);
List<String> idiomSet = idiomMap.getOrDefault(lastChar, new ArrayList<>());
idiomSet.addAll(Collections.singleton(idiom));
idiomMap.put(lastChar, idiomSet);
}
}
```
这样就可以解决这个错误了。
阅读全文