【问题标题】:How to set custom comparator in Java Map of Map?如何在 Java Map of Map 中设置自定义比较器?
【发布时间】:2020-02-01 17:26:42
【问题描述】:
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)  > ();

【问题讨论】:

  • javadoc 是你的朋友。使用带有Comparator 参数的constructor
  • 对于一个普通的TreeMap,我知道怎么写,但问题是如何为treemap的map做。能否提供代码示例?

标签: java treemap sortedmap


【解决方案1】:

您试图在 type 参数中设置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 实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 2017-12-08
    • 1970-01-01
    相关资源
    最近更新 更多