使用Integer作为Key和ArrayList对散列映射进行排序

时间:2012-07-16 12:47:33

标签: java collections map

我的情况是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])

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

Map未排序,因此它不是您的任务的正确数据结构。 SortedMap键进行排序,所以它也不好,因为您希望地图按排序。

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