如何在 Java Map of Map 中设置自定义比较器?

How to set custom comparator in Java Map of Map?

Map<Character, TreeMap<Integer, String>> topElems = new HashMap<Character, TreeMap<Integer, String>  > ();

如何为上述语句中的TreeMap设置自定义比较器?

类似于:

Map<Character, TreeMap<Integer, String>> topElems = new HashMap<Character, TreeMap<Integer, String> ((x, y) -> y - x)  > ();

您试图在 类型参数 中设置 Comparator,这是无效语法。类型参数仅指定类型,它们不是实际实例。您需要做的是为每个放入外部 Map:

TreeMap 使用正确的 Comparator
Map<Character, TreeMap<Integer, String>> map = new HashMap<>();

TreeMap<Integer, String> treeMap = new TreeMap<>((x, y) -> y - x);
map.put('A', treeMap);

注意你不能强制,通过编译器,每个TreeMap使用相同的Comparator实现。