【问题标题】:Sort a hashmap and get a key in an order (2nd key, 3rd, etc.) [duplicate]对哈希图进行排序并按顺序获取一个键(第二个键,第三个等)[重复]
【发布时间】:2021-10-22 16:42:11
【问题描述】:

我有一个HashMap<String, Integer> 列表,我想按整数对其进行排序,并能够按特定顺序获取一个键(例如:获取第三个或第五个键)。 我该怎么做?

【问题讨论】:

  • “我有一个 HashMap 列表”是什么意思?你的意思是List<HashMap<String,Integer>> 还是别的什么?另外,当您“获得第 3 名”时,您希望得到什么结果?
  • 基本上,我正在制作记分牌,我希望玩家看到他们的位置,所以基本上他们的位置,使用值。
  • 使用List<ScoreInfo> 代替使用地图怎么样,其中ScoreInfo 将是持有String name; Integer score 的类?

标签: java hashmap


【解决方案1】:

您无法对HashMap 进行排序。 HashMap 中的条目顺序有点随机。

您可以使用myMap.keySet() 提取密钥(以随机顺序)并将它们放入一个新的有序集合中(= ListSortedSet),例如:new ArrayList<>(myMap.keySet());。然后对这个List进行排序。

或者您使用 SortedMap 和自定义 Comparator 而不是 HashMap

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多