开发者社区> 问答> 正文

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

蛮大人123 2016-03-20 16:19:27 1100

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

存储
分享到
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 19:09:48

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

    0 0
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题