ArrayList list1=new ArrayList("A","2","3","4","5","6","7","8","9","10","J","Q","K");
     ArrayList list2=new ArrayList("黑","红","梅","方");
public class Test(){
    String num;
    String ch;
    public Test(String num,String ch){
      this.num=num;
      this.ch=ch; 
    }
}1、按黑红梅方放入Test类中;
2、随机洗一副牌。
大概只记得这么多了。。
请大侠指教!!

解决方案 »

  1.   

    先装到一个容器里面 然后随机取一个牌  然后从容器里面把这个牌remove掉
    然后循环
    直到发完
      

  2.   

    不是有两个ArrayList嘛,ArrayList中是随机排放的,你可以求一个人random的数除以13得到的余数作为index,从第一个list
    取一个,而%4的值作为index2到第二个list取花色,一旦某一种牌(比如3)取到了4张,就13--了
      

  3.   


    package com.csdn;import java.util.ArrayList;
    import java.util.List;public class RandomCard { public static void main(String[] args) {
    List<String> list =  getnewList();
    //洗牌后的LIST
    for (String s : list) {
    System.out.println("-----"+s);
    }
    }
    static List<String> list = getList();
    static List<String> listnew = new ArrayList<String>();
    static int flag = list.size();
    //洗牌
    public static List<String> getnewList() {
    flag--;

    String code = null;
    for(int i = 0;i<list.size();i++) {
    //随机获得一个
    int charIndex = (int) Math.floor(Math.random() * flag);
    //加入
    listnew.add(list.get(charIndex));
    //加了后去掉
    list.remove(charIndex);
    //递归
    getnewList();

    }
    return listnew;

    }
    //原来的牌
    public static List<String> getList() { List<String> list = new ArrayList<String>();
    list.add("A");
    list.add("2");
    list.add("3");
    list.add("4");
    list.add("5");
    list.add("6");
    list.add("7");
    list.add("8");
    list.add("9");
    list.add("10");
    list.add("J");
    list.add("Q");
    list.add("K");
    return list;
    }}
      

  4.   

    package com.csdn;import java.util.ArrayList;
    import java.util.List;
    //54张牌原理和上面一样因为54个牌是死的
    public class RandomCard { public static void main(String[] args) {
    List<String> list =  getnewList();
    //洗牌后的LIST
    for (String s : list) {
    System.out.println("-----"+s);
    }
    }
    static List<String> list =  getList54();
    static List<String> listnew = new ArrayList<String>();
    static int flag = list.size();
    //洗牌
    public static List<String> getnewList() {
    flag--;

    String code = null;
    for(int i = 0;i<list.size();i++) {
    //随机获得一个
    int charIndex = (int) Math.floor(Math.random() * flag);
    //加入
    listnew.add(list.get(charIndex));
    //加了后去掉
    list.remove(charIndex);
    //递归
    getnewList();

    }
    return listnew;

    }
    //原来的牌
    public static List<String> getList() { List<String> list = new ArrayList<String>();
    list.add("A");
    list.add("2");
    list.add("3");
    list.add("4");
    list.add("5");
    list.add("6");
    list.add("7");
    list.add("8");
    list.add("9");
    list.add("10");
    list.add("J");
    list.add("Q");
    list.add("K");
    return list;
    }

    //原来的牌
    public static List<String> getListFlag() { List<String> list = new ArrayList<String>();
    list.add("黑");
    list.add("红");
    list.add("梅");
    list.add("方");
    return list;
    }
    //生成54张牌
    public static List<String> getList54(){
    List<String> list0 = new ArrayList<String>();
    List<String> list = getListFlag();
    List<String> list1 = getList();
    for(int i = 0;i<list1.size();i++){
    for(int j =0;j<list.size();j++){
    list0.add(list1.get(i).toString()+list.get(j).toString());

    }
    }
    return list0;
    }}
      

  5.   

    楼主的数据结构定义有问题。
    定义一个card类,有两个属性,一个属性取("A","2","3","4","5","6","7","8","9","10","J","Q","K")中的值,一个属性取("黑","红","梅","方")中的值,然后初始化52个card对象,每个对象赋予一个唯一的键值。然后随机取值出牌就可以。