开发者社区> 问答> 正文

如何在LinkedList对象中加入两种比较器?

用LinkedList对象list存储扑克牌并排序,写了一个牌值比较器RankComparator和
一个花色比较器SuitComparator, 还有写了枚举的CardRank和CardSuit,并对不同的
花色和牌值都赋了不同的值,再用Collection.sort(list,new RankComparator())进行牌值的排序,现在我想再加一个花色的排序(就是list中既对牌值排序,又对花色排序),请问该怎么写呢?

展开
收起
蛮大人123 2016-03-20 16:19:27 2398 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    1、假设list存储的引用变量类型为Card。
    2、你写了一个牌值比较器RankComparator和一个花色比较器SuitComparator,然后你想既对牌值排序,又对花色排序。
    那么你需要整合这两个比较器,就是只使用一个比较器CardComparator,它比较规则是:先比较牌值,如果牌值相同再比较花色,最后得出比较结果。
    3、调用Collection.sort(list,new CardComparator()); 即可实现你的需求。

    2019-07-17 19:09:48
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载