如何在 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
实现。
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
实现。