Sorting an hashmap with Integer as Key and ArrayList
我有一个HashMap的情况
Map key = new HashMap();
数组列表有[rankOfCard,suitOfCard]
我想以这样的方式对这个Map进行排序:如果值是
1 2 3 4 5
| (1,[3,1])
(2,[2,4])
(3,[1,3])
(4,[1,2])
(5,[2,3]) |
输出应该是:
1 2 3 4 5
| (4,[1,2])
(3,[1,3])
(5,[2,3])
(2,[2,4])
(1,[3,1]) |
我怎样才能做到这一点?
-
当像Card这样的类会更好时,你似乎正在使用ArrayList。 HashMap是一个未排序的地图,我怀疑你不需要对它进行排序,而是想要按特定的顺序显示它们。
-
正是我写的:)在Java中你不用List建模元组。
-
@PeterLawrey我知道您要求我使用包含Rank和suit属性的类卡。 我对吗 ?
-
@Meenakshi如果这就是数据的意思,是的。 这将使值的排序更符合逻辑。
通过入口集和Collection.sort(entry.value())进行迭代
Map未排序,因此它不是您的任务的正确数据结构。
一个SortedMap对键进行排序,所以它也不好,因为你希望你的地图按值排序。
您的问题没有说明Map的键是什么,但也许您可以在常规List中使用自定义类,并让类实现Comparable接口,或实现外部Comparator, 排序List。