【问题标题】:Sorting an hashmap with Integer as Key and ArrayList使用整数作为键和 ArrayList 对哈希图进行排序
【发布时间】:2012-07-15 07:40:31
【问题描述】:

我有一个 HashMap 的情况

Map<Integer,ArrayList> key = new HashMap<Integer,ArrayList>();

数组列表有[rankOfCard,suitOfCard]

我想对这个 Map 进行排序,如果值为

(1,[3,1])
(2,[2,4])
(3,[1,3])
(4,[1,2])
(5,[2,3])

输出应该是:

(4,[1,2])
(3,[1,3])
(5,[2,3])
(2,[2,4])
(1,[3,1])

我怎样才能做到这一点?

【问题讨论】:

  • Card 这样的类会更好时,您似乎正在使用 ArrayList。 HashMap 是未排序的地图,我怀疑您不需要对其进行排序,而是希望以特定顺序显示它们。
  • 正是我写的 :) 在 Java 中,您不会使用 List 对元组建模。
  • @PeterLawrey 我知道您要我使用包含等级和花色属性的职业卡片。我说的对吗?
  • @Meenakshi 如果这就是数据的意思,是的。这也将使值的排序更加合乎逻辑。

标签: java collections map


【解决方案1】:

Iterate through entry setCollection.sort(entry.value())

【讨论】:

    【解决方案2】:

    Map 未排序,因此它不是适合您任务的数据结构。 SortedMapkeys 排序,所以也不好,因为您希望地图按 value 排序。

    您的问题没有说明Map 的关键是什么,但也许您可以在常规List 中使用自定义类,并让该类实现Comparable 接口,或实现外部@987654326 @,对List进行排序。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2012-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 2011-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多