问题描述
- 如何在LinkedList对象中加入两种比较器?
-
用LinkedList对象list存储扑克牌并排序,写了一个牌值比较器RankComparator和
一个花色比较器SuitComparator, 还有写了枚举的CardRank和CardSuit,并对不同的
花色和牌值都赋了不同的值,再用Collection.sort(list,new RankComparator())进行牌值的排序,现在我想再加一个花色的排序(就是list中既对牌值排序,又对花色排序),请问该怎么写呢?谢谢各位大虾。
解决方案
不太懂楼主想问什么,要放两种储存排序结果的变量?先new一个hashmap,然后把俩排序对象扔进去。接着把map扔进你的list就完事儿了
解决方案二:
同时比对两个肯定不现实,不然第一个会覆盖第二个的排序
解决方案三:
自己编写一个类基数排序实现一下
解决方案四:
1、假设list存储的引用变量类型为Card。
2、你写了一个牌值比较器RankComparator和一个花色比较器SuitComparator,然后你想既对牌值排序,又对花色排序。
那么你需要整合这两个比较器,就是只使用一个比较器CardComparator,它比较规则是:先比较牌值,如果牌值相同再比较花色,最后得出比较结果。
3、调用Collection.sort(list,new CardComparator()); 即可实现你的需求。
时间: 2024-11-08 20:10:43