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

问题描述

如何在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

java-如何在LinkedList对象中加入两种比较器?的相关文章

面向对象-javascript中这两种对象属性有什么区别?

问题描述 javascript中这两种对象属性有什么区别? 第一种:function aaa(){} aaa.a=111; 第二种:function bbb(){} bbb.prototype.b=111; 我在csdn问过第一种,大部分人说属于面向对象的范畴. 但是我看了几篇js面向对象博客,都是用第二种原型的方式: 所以想知道这两种给对象添加属性的行为,在实际应用中有什么区别? 解决方案 如果把aaa,bbb作为方法来看,这两者没有区别. 如果把aaa,bbb作为类来看,那有区别. aaa.

javascript-js判断一个list里面的applyform对象中的两个日期是否有重复部分?

问题描述 js判断一个list里面的applyform对象中的两个日期是否有重复部分? js判断一个list里面的applyform对象中的两个日期是否有重复部分,求思路和代码,谢谢 解决方案 js判断两个对象是否全等 解决方案二: for遍历list进行对比 var arr = [{ d: '2015-10-12' }, { d: '2015-10-14' }, { d: '2015-10-12' }]; var find = false; for (var i = 0; i < arr.le

C# Winfrom项目,如何在from窗体中控制两个timer控件时间的同步显示

问题描述 C# Winfrom项目,如何在from窗体中控制两个timer控件时间的同步显示 在C# Winfrom项目中,一个from窗体,两个timer控件(timer1和timer2),两个Label控件(labe1和label2), timer1是实现0到1分钟的倒计时显示在显示labe1中,timer2是实现到1分钟后自动显示当前时间到label2中. 两个button控件(button1和button2).button1和button2分别控制timer1的开始和暂停. timer1

Crystal Report在.net中的两种显示方式

原文:Crystal Report在.net中的两种显示方式 Crystal Report在.net中的两种显示方式 编写人:CC阿爸   2014-7-29   近来在完成深圳一公司的项目,对方对各方面要求相当严格,一不满意就拒绝签收,为了对修正水晶报表显示及导出的一些小问题,无赖之下,仔细了解一下水晶报表的操作方法,逼苦我们这些苦逼的程序,虽说在以前的项目中,也常使用crystal report 来制作报表.并且针对web与winform 都各有不同的地方.   但总的来讲:显示水晶报表目前

使用Java构造和解析Json数据的两种方法(详解二)_java

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法

IIS5中的两种服务器端网页重定向方法

iis|服务器|网页|iis|服务器 IIS5中的两种服务器端网页重定向方法      在IIS5中提供了两种服务器端网页重定向(或者说转向)的方法, 一个是Server.Transfer方法, 另外一个是Server.Execute方法. 说它们是服务器端重定向,是因为在不同页面之间的转向是直接在服务器端 完成的, 客户端只能看到结果,而不能看到转向的过程. 这同以往我们在IIS4使用的 Response.Redirect 方法是不同的.      以前, 当我们需要从一个页面转向到另外一个页

select-link中这样两种写法有什么区别?

问题描述 link中这样两种写法有什么区别? var query = from x in table select x; foreach (var item in x) { ... } foreach (var item in table) { ... } 解决方案 两种写法一样,而且性能也一样

工程中采用两种框架两种编码格式出现乱码问题 求助

问题描述 工程中采用两种框架两种编码格式出现乱码问题 求助 工程中用到了两种框架 两种编码格式 出现乱码 不知道怎么处理

javascript面向对象之访问对象属性的两种方式分析_javascript技巧

本文实例分析了javascript面向对象之访问对象属性的两种方式.分享给大家供大家参考.具体如下: javascript面向对象的访问对象属性的两种方式.如下代码所示: 复制代码 代码如下: <script language="javascript" type="text/javascript"> function Person(){}; var p1 = new Person(); p1.name="王美人"; document.