import java.util.Comparator;
/**
* 这是一个对扑克牌进行自定义排序的类。
* 排序标准:方块3,红心3,梅花3,黑桃3,方块4,红心4,...梅花2,黑桃2,小王,大王
*/
public class MySort implements Comparator<String> {
//定义排序标准
private String str = "方块红心梅花黑桃345678910JQKA2小王大王";
@Override
public int compare(String str1, String str2) {
// str1的花色
String str1HuaSe = str1.substring(0, 2);
// str1的点数
String str1DianShu = str1.substring(2);
// 王牌的花色跟点数相等
if ("".equals(str1DianShu)) {
str1DianShu = str1HuaSe;
}
// str2的花色
String str2HuaSe = str2.substring(0, 2);
// str2的点数
String str2DianShu = str2.substring(2);
// 王牌的花色跟点数相等
if ("".equals(str2DianShu)) {
str2DianShu = str2HuaSe;
}
// 先排点数再排花色
int x = str.indexOf(str1DianShu) - str.indexOf(str2DianShu);
return x == 0 ? str.indexOf(str1HuaSe) - str.indexOf(str2HuaSe) : x;
}
}
用法:扑克牌用List集合来装,调用Collections的sort方法,把这个类的对象作为参数传递进去即可
|
|