求帮助看下代码哪出错了(用集合做的)

package poker.com;

import java.util.*;

public class PokerShuffleCards {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    ArrayList<String> color = new ArrayList<String>();
    color.add("❤");
    color.add("♠");
    color.add("♦");
    color.add("♣");
    ArrayList<String> number = new ArrayList<String>();
    for(int i=3;i<=10;i++){
        number.add(i+"");
    }
    number.add("J");
    number.add("Q");
    number.add("k");
    number.add("A");
    number.add("2");
    HashMap<Integer, String> map = new HashMap<Integer, String>();
    int index = 0;//表示牌的编号
    for(String thisNumber:number){//外循环控制数字字符串
        for(String thisColor:color){//内循环控制花色
            map.put(index++, thisNumber + thisColor);
        }
    }
    //加入大小王
    map.put(index++, "小王");
    map.put(index++, "大王");
    //创建数字集合,代表54张牌
    ArrayList<Integer> cards = new ArrayList<Integer>();
    for(int i=0;i<=53;i++){
        cards.add(i);
    }
    //洗牌,使用Collections的shuffle()方法
    Collections.shuffle(cards);
    //创建三个玩家和底牌
    ArrayList<Integer> iplayer01 = new ArrayList<Integer>();
    ArrayList<Integer> iplayer02 = new ArrayList<Integer>();
    ArrayList<Integer> iplayer03 = new ArrayList<Integer>();
    ArrayList<Integer> iSecretCards = new ArrayList<Integer>();
    //遍历这副洗好的牌,遍历过程中,将牌发到三个玩家手中
    for(int i=0;i<cards.size();i++){
        if(i >=51 ){
            iSecretCards.add(cards.get(i));
        }else{
            //与3取余为0的发给玩家1
            if(i%3 == 0) iplayer01.add(cards.get(i));
            //与3取余为1的发给玩家2
            else if(i%3 == 1) iplayer02.add(cards.get(i));
            //与3取余为2的发给玩家3
            else iplayer03.add(cards.get(i));
        }
    }
    //对每个人手中的牌排序,使用Collections工具类中的sort()方法
    Collections.sort(iplayer01);
    Collections.sort(iplayer02);
    Collections.sort(iplayer03);
    //对应数字形式中的每个人手中的牌。定义字符串形式的牌
    ArrayList<String> sPlayer01 = new ArrayList<String>();
    ArrayList<String> sPlayer02 = new ArrayList<String>();
    ArrayList<String> sPlayer03 = new ArrayList<String>();
    ArrayList<String> sScretCards = new ArrayList<String>();
    //遍历主键,从map中获得纸牌
    for (Integer key:iplayer01){  //第一个玩家手中的牌
        sPlayer01.add(map.get(key));    
    }
    for (Integer key:iplayer02){ //第二个玩家手中的牌
        sPlayer02.add(map.get(key));
    }
    for (Integer key:iplayer03){ //第三个玩家手中的牌
        sPlayer03.add(map.get(key));
    }
    for (Integer key:iSecretCards){ //底牌
        sScretCards.add(map.get(key));
    }
    //看牌
    System.out.println("玩家1:"+iplayer01);
    System.out.println("玩家2:"+iplayer02);
    System.out.println("玩家3:"+iplayer03);
    System.out.println("底牌:"+iSecretCards);
}

}

运算结果:
玩家1:[0, 3, 5, 8, 10, 11, 14, 15, 24, 25, 27, 35, 39, 43, 44, 52, 53]
玩家2:[1, 6, 16, 17, 18, 21, 23, 26, 28, 29, 36, 38, 40, 41, 42, 45, 50]
玩家3:[2, 4, 9, 12, 13, 19, 22, 30, 31, 32, 33, 37, 46, 47, 48, 49, 51]
底牌:[7, 34, 20]

求帮助,帮我分析是哪里出错了

你想要输出什么效果????

//创建数字集合,代表54张牌
ArrayList cards = new ArrayList();
for(int i=0;i<=53;i++){
cards.add(i);
}
这里你放的是i

  System.out.println("玩家1:"+sPlayer01);
        System.out.println("玩家2:"+sPlayer02);
        System.out.println("玩家3:"+sPlayer03);
        System.out.println("底牌:"+sScretCards);

玩家1:[3♣, 4♠, 5❤, 6♠, 6♣, 7❤, 7♠, 9❤, 9♦, J♠, Q❤, Q♠, Q♣, A♠, 2❤, 2♠, 2♦]
玩家2:[3♠, 4❤, 5♦, 5♣, 6♦, 7♦, 8❤, 8♦, 9♣, 10♠, 10♣, J♦, J♣, k♦, A❤, 2♣, 大王]
玩家3:[3❤, 3♦, 4♦, 5♠, 6❤, 7♣, 8♠, 8♣, 9♠, 10❤, 10♦, k❤, k♠, k♣, A♦, A♣, 小王]
底牌:[4♣, J❤, Q♦]

// TODO Auto-generated method stub
ArrayList color = new ArrayList();
color.add("❤");
color.add("♠");
color.add("♦");
color.add("♣");
ArrayList number = new ArrayList();
for(int i=3;i<=10;i++){
number.add(i+"");
}
number.add("J");
number.add("Q");
number.add("k");
number.add("A");
number.add("2");
HashMap map = new HashMap();
int index = 0;//表示牌的编号
for(String thisNumber:number){//外循环控制数字字符串
for(String thisColor:color){//内循环控制花色
map.put(index++, thisNumber + thisColor);
}
}
//加入大小王
map.put(index++, "小王");
map.put(index++, "大王");
//创建数字集合,代表54张牌
ArrayList cards = new ArrayList();
for(int i=0;i<=map.size();i++){
cards.add(map.get(i));
}
//洗牌,使用Collections的shuffle()方法
Collections.shuffle(cards);
//创建三个玩家和底牌
ArrayList iplayer01 = new ArrayList();
ArrayList iplayer02 = new ArrayList();
ArrayList iplayer03 = new ArrayList();
ArrayList iSecretCards = new ArrayList();
//遍历这副洗好的牌,遍历过程中,将牌发到三个玩家手中
for(int i=0;i if(i >=51 ){
iSecretCards.add(cards.get(i));
}else{
//与3取余为0的发给玩家1
if(i%3 == 0) iplayer01.add(cards.get(i));
//与3取余为1的发给玩家2
else if(i%3 == 1) iplayer02.add(cards.get(i));
//与3取余为2的发给玩家3
else iplayer03.add(cards.get(i));
}
}
//对每个人手中的牌排序,使用Collections工具类中的sort()方法
/* Collections.sort(iplayer01);
Collections.sort(iplayer02);
Collections.sort(iplayer03);*/

        //看牌
        System.out.println("玩家1:"+iplayer01);
        System.out.println("玩家2:"+iplayer02);
        System.out.println("玩家3:"+iplayer03);
        System.out.println("底牌:"+iSecretCards);
    } 

随便写该的

        // TODO Auto-generated method stub
        ArrayList<String> color = new ArrayList<String>();
        color.add("❤");
        color.add("♠");
        color.add("♦");
        color.add("♣");
        ArrayList<String> number = new ArrayList<String>();
        for(int i=3;i<=10;i++){
            number.add(i+"");
        }
        number.add("J");
        number.add("Q");
        number.add("k");
        number.add("A");
        number.add("2");
        HashMap<Integer, String> map = new HashMap<Integer, String>();
        int index = 0;//表示牌的编号
        for(String thisNumber:number){//外循环控制数字字符串
            for(String thisColor:color){//内循环控制花色
                map.put(index++, thisNumber + thisColor);
            }
        }
        //加入大小王
        map.put(index++, "小王");
        map.put(index++, "大王");
        //创建数字集合,代表54张牌
        ArrayList<String> cards = new ArrayList<String>();
        for(int i=0;i<map.size();i++){
            cards.add(map.get(i));
        }
        //洗牌,使用Collections的shuffle()方法
        Collections.shuffle(cards);
        //创建三个玩家和底牌
        ArrayList<String> iplayer01 = new ArrayList<String>();
        ArrayList<String> iplayer02 = new ArrayList<String>();
        ArrayList<String> iplayer03 = new ArrayList<String>();
        ArrayList<String> iSecretCards = new ArrayList<String>();
        //遍历这副洗好的牌,遍历过程中,将牌发到三个玩家手中
        for(int i=0;i<cards.size();i++){
            if(i >=51 ){
                iSecretCards.add(cards.get(i));
            }else{
                //与3取余为0的发给玩家1
                if(i%3 == 0) iplayer01.add(cards.get(i));
                //与3取余为1的发给玩家2
                else if(i%3 == 1) iplayer02.add(cards.get(i));
                //与3取余为2的发给玩家3
                else iplayer03.add(cards.get(i));
            }
        }
        //对每个人手中的牌排序,使用Collections工具类中的sort()方法
       /* Collections.sort(iplayer01);
        Collections.sort(iplayer02);
        Collections.sort(iplayer03);*/

        //看牌
        System.out.println("玩家1:"+iplayer01);
        System.out.println("玩家2:"+iplayer02);
        System.out.println("玩家3:"+iplayer03);
        System.out.println("底牌:"+iSecretCards); 

http://blog.csdn.net/qq_30718113/article/details/71438975