A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Demo {
        public static void main(String[] args) {
                String[] color = { "黑桃", "红桃", "梅花", "方块" };
                String[] number = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10",
                                "J", "Q", "K" };

                ArrayList<String> array = new ArrayList<String>();
                array.add("大王");
                array.add("小王");

                for (String c : color) {
                        for (String n : number) {
                                array.add(c.concat(n));
                        }
                }
                Collections.shuffle(array);
                // System.out.println(array);
               
                ArrayList<String> player1 = new ArrayList<String>();
                ArrayList<String> player2 = new ArrayList<String>();
                ArrayList<String> player3 = new ArrayList<String>();
               
                for (int i = 0; i < array.size()-3; i++) {
                        if (i%3 == 0) {
                                player1.add(array.get(i));
                        }
                        if (i%3 == 1) {
                                player2.add(array.get(i));
                        }
                        if (i%3 == 2) {
                                player3.add(array.get(i));
                        }
                }
               
               
                Collections.sort(player1, new MyComparator());
                Collections.sort(player2, new MyComparator());
                Collections.sort(player3, new MyComparator());
               
                System.out.println("player1"+player1);
                System.out.println("player1"+player2);
                System.out.println("player1"+player3);
               
                for (int i = array.size()-3; i < array.size(); i++) {
                        System.out.print(array.get(i)+",");
                }
               
               
        }
}


public class MyComparator implements Comparator<String>{
public int compare(String s1, String s2) {
               
                // 截取花色
                String c1 = s1.substring(0, 2);
                String c2 = s2.substring(0, 2);
               
                // 截取点数
                String n1 = s1.substring(2);
                String n2 = s2.substring(2);
               
                int num1 = StringToInt(c2, n2) - StringToInt(c1, n1);
                int num2 = num1 == 0 ? c2.compareTo(c1) : num1;
               
                return num2;
        }
       
        public static int StringToInt(String c, String n) {
               
                int rut = 0;
                if (c.equals("大王")) {
                        return 17;
                }
                if (c.equals("小王")) {
                        return 16;
                }
               
                if (n != null) {
                       
                        switch (n) {
                        case "2":
                                rut = 15;
                                break;
                        case "A":
                                rut = 14;
                                break;
                        case "J":
                                rut = 11;
                                break;
                        case "Q":
                                rut = 12;
                                break;
                        case "K":
                                rut = 13;
                                break;
                        default:
                                rut = Integer.parseInt(n);
                                break;
                        }
                }
                return rut;
        }
}



25 个回复

正序浏览
阮文江 发表于 2015-8-11 23:25
我觉的集合这里知识点好多,,,消化了很久都没搞定!

{:3_62:}集合的东西确实挺多的  不好记还容易记错,在实践中慢慢理解呗
回复 使用道具 举报
泽尻绘里香 发表于 2015-8-11 23:55
唯有这个比较器真是让人捉摸不透

{:2_44:}比较器?就是一个规则而已。按自己的想法就可以。
回复 使用道具 举报
大木木 发表于 2015-8-12 00:22
大神,萌新不懂,为何编译报错了咧~
Demo.java:58: 错误: 类MyComparator是公共的, 应在名为 MyComparator. ...

你是怎么运行的   MyComparator类要单独放一个文件的
回复 使用道具 举报
大神,萌新不懂,为何编译报错了咧~
Demo.java:58: 错误: 类MyComparator是公共的, 应在名为 MyComparator.java 的文件中
声明
回复 使用道具 举报
唯有这个比较器真是让人捉摸不透
回复 使用道具 举报
我觉的集合这里知识点好多,,,消化了很久都没搞定!
回复 使用道具 举报
zhaoyue 发表于 2015-8-10 21:10
你老师是HLY吗?

不是不是的
回复 使用道具 举报

{:2_43:}嘎嘎嘎嘎
回复 使用道具 举报
CharnLau 发表于 2015-8-10 21:57
这段代码我完全没敲!

介个要自己动手敲一下好
回复 使用道具 举报
天地一沙鸥 发表于 2015-8-10 22:24
这段代码还是很有意思的。
感觉蛮有趣的。
我现在想等学完IO是不是可以模仿侠客行自己做个MUD ...

{:2_42:}那你加油哦!
回复 使用道具 举报
kenfans 发表于 2015-8-10 22:48
代码好多我有点晕

都表酱紫好不啦,其实很好理解的
回复 使用道具 举报
塞巴斯的小夏尔 来自手机 中级黑马 2015-8-11 23:18:09
15#
加油加油↖(^ω^)↗
回复 使用道具 举报
烬5 发表于 2015-8-10 22:54
感觉很厉害的样子

我也感觉很厉害的样子!{:2_32:}
回复 使用道具 举报
a513200780 发表于 2015-8-10 23:08
厉害!!半个月了  我还在看面向对象

不会吧?面向对象要在往后的学习中慢慢深入的
回复 使用道具 举报
小黑与小白 发表于 2015-8-10 23:48
这是复制粘贴!!!

{:2_40:}zi ji xie de hao bu hao
回复 使用道具 举报
这是复制粘贴!!!
回复 使用道具 举报
厉害!!半个月了  我还在看面向对象{:2_30:}
回复 使用道具 举报
烬5 中级黑马 2015-8-10 22:54:21
9#
感觉很厉害的样子
回复 使用道具 举报
代码好多我有点晕
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马