SortedMap<String, String> sortedParams = new TreeMap<>(params.entrySet()); 这段代码new TreeMap<>无法指定类型
时间: 2024-12-23 18:20:24 浏览: 3
java_Map-sort.rar_Java编程_Java_
确实,`SortedMap<String, String> sortedParams = new TreeMap<>(params.entrySet());` 这段代码中,`new TreeMap<>()` 不直接接受类型参数,因为它是一个泛型构造函数。在Java中,如果你想要明确指定类型参数,应该像下面这样写:
```java
SortedMap<String, String> sortedParams = new TreeMap<>(
params.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))
);
```
这里的 `Collectors.toMap()` 配合 `Stream.of()` 或者 `params.entrySet()` 能够动态地创建一个新的 `SortedMap`。如果原始 `Map` 的键和值都是String类型,那么这种方式会自动推断出 `SortedMap<String, String>` 类型。但是如果你有其他类型的键值对,并希望强制指定类型,可以在 `Collectors` 中显式指定类型参数,例如 `Collectors.toMap((Entry<String, Integer>) e -> e.getKey(), e -> e.getValue())`。
阅读全文