【问题标题】:Sorting HashMap by key and value accepting null instances按接受空实例的键和值对 HashMap 进行排序
【发布时间】:2017-10-03 18:52:50
【问题描述】:

我有一个包含用户列表的 HashMap,键是该用户参与的团队的 ID。这组键如下所示:

[59b83da60b616d17065a993a, null, 59b84145cb49632609e03811, 59a82440cc32316561d803ce, 59c109aa20fe7b48f3832eef, 59a74647cc32316561d7be21, 59c5013b20fe7b48f3871c83]

考虑到每个团队都有一个ID和一个名字,我想知道如果这些ID和保持字段null在HashMap的第一位,我该如何按相应的名字对这个HashMap进行排序。

我有一个团队列表,我可以使用 getName(String id) 方法轻松检查 ID 为“1”的团队的名称。但我的困难是处理HashMap。

【问题讨论】:

  • HashMap 是为快速查找而设计的。它们不是为排序而设计的。您将需要选择不同的数据结构。

标签: java sorting hashmap


【解决方案1】:

如果你想对你的地图进行排序,你不应该使用HashMap,而是使用一些SortedMap,比如TreeMap。您通常可以使用比较器初始化此类映射以指定排序顺序。比如:

Map<String, Team> teams = new TreeMap<>(Comparator.nullsFirst(Comparator.naturalOrder()));

【讨论】:

    猜你喜欢
    • 2011-11-05
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2013-11-03
    相关资源
    最近更新 更多