//加上这句
puke puke1= new puke();
List play = Arrays.asList(puke1.player);或者把数组的初始化写到一个static的init方法里

解决方案 »

  1.   

    //初始化puke对象,否则palyer数组的值都是0。
    puke p = new puke();
    List play = Arrays.asList(player);
         Collections.shuffle(play);
         play.toArray(player); 
         for(int i=1;i<=13;i++){
             for(int j=1;j<=4;j++){
                    switch(player[i][j].type){
                         //case中都要加break否则会继续执行
                        case 1:{
                              System.out.print("黑桃"+player[i][j].num);
                              break;
                            }
                        case 2:System.out.print("红桃"+player[i][j].num);
                        case 3:System.out.print("梅花"+player[i][j].num);
                        case 4:System.out.print("方片"+player[i][j].num);
                        //最好加default:
                        default:
                    }
      

  2.   

    for(int i=0;i<13;i++){ //数组下标越界。
             for(int j=0;j<4;j++){
                    switch(player[i][j].type){
      

  3.   

    内部类初始化有问题呵呵呵。
    for(int i=1;i<=13;i++){
            for(int j=1;j<=4;j++){
                         player[i-1][j-1] = new test1(); //加这句应该没问题了。
                player[i-1][j-1].type=j;
             player[i-1][j-1].num=i;
           }
      

  4.   

    import java.util.*;
    class test1{
    private int num=0;
    private int type=0;
    public test1(int num,int type){
    this.num=num;
    this.type=type;
    }
    public void setNum(int num){
    this.num=num;
    }
    public void setType(int type){
    this.type=type;
    }
    public int getNum(){
    return num;
    }
    public int getType(){
    return type;
    }
    }public class puke{    public static void main(String args[]){
    test1 player[][]= new test1[13][4];
    for(int i=0;i<13;i++){
        for(int j=0;j<4;j++){
             player[i][j]=new test1(i+1,j+1);
        }
         }
         List play = Arrays.asList(player);
         Collections.shuffle(play);
         play.toArray(player);
         for(int i=0;i<13;i++){
             for(int j=0;j<4;j++){
                    switch(player[i][j].getType()){
                        case 1:System.out.print("黑桃"+player[i][j].getNum());
                        case 2:System.out.print("红桃"+player[i][j].getNum());
                        case 3:System.out.print("梅花"+player[i][j].getNum());
                        case 4:System.out.print("方片"+player[i][j].getNum());
                    }
             System.out.println();
             }
         }
        }
    }
      

  5.   

    我找到原因了
    package test;import java.util.*;class test1{
             int num;
             int type;
    }public class vv{
        public static void main(String args[]){
          int i = 0;
          int j = 0;    test1[][] player= new test1[13][4];      for( i=0;i<13;i++){
              for( j=0;j<4;j++){
                 player[i][j] = new test1();-----------------》这句话是关键所在  
                  player[i][j].type=j;
                     player[i][j].num=i;
             }
          }            List play = Arrays.asList(player);
                Collections.shuffle(play);
                play.toArray(player);
                for( i=1;i<13;i++){
                    for( j=1;j<4;j++){
                    switch(player[i][j].type){
                        case 1:System.out.print("黑桃"+player[i][j].num);
                        case 2:System.out.print("红桃"+player[i][j].num);
                        case 3:System.out.print("梅花"+player[i][j].num);
                        case 4:System.out.print("方片"+player[i][j].num);
                    }
                    System.out.println();
                    }
                }
        }
    }player[i][j] = new test1();没有这句话,player只是指向了一个数组,但是它不知道数组中每个元素是什么类型