用LinkedList对象list存储扑克牌并排序,写了一个牌值比较器RankComparator和
一个花色比较器SuitComparator, 还有写了枚举的CardRank和CardSuit,并对不同的
花色和牌值都赋了不同的值,再用Collection.sort(list,new RankComparator())进行牌值的排序,现在我想再加一个花色的排序(就是list中既对牌值排序,又对花色排序),请问该怎么写呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
1、假设list存储的引用变量类型为Card。
2、你写了一个牌值比较器RankComparator和一个花色比较器SuitComparator,然后你想既对牌值排序,又对花色排序。
那么你需要整合这两个比较器,就是只使用一个比较器CardComparator,它比较规则是:先比较牌值,如果牌值相同再比较花色,最后得出比较结果。
3、调用Collection.sort(list,new CardComparator()); 即可实现你的需求。