String数组洗牌和List集合洗牌

来源:互联网 发布:skycopy是什么软件 编辑:程序博客网 时间:2024/06/05 12:02

造牌:

Card[] cards = new Card[54];     int j=0;    for(int i=0; i<=12; i++){      cards[j++]=new Card(i,0);      cards[j++]=new Card(i,1);      cards[j++]=new Card(i,2);      cards[j++]=new Card(i,3);    }      cards[j++]=new Card(13,4);      cards[j++]=new Card(14,4);

洗牌:

//一:数组洗牌:Random r = new Random();for(i=cards.length-1; i>=1; i--){int j=r.nextInt(i);Card t =cards[i];        //将最后一张牌与随机的牌交换,交换之前将原先的值赋予临时变量t,以便于赋给随机牌cards[i]=cards[j];   cards[j]=t;}System.out.println(Arrays.toString(cards));*//*二:List集合进行洗牌List list = new ArrayList();for(int j=0; j<cards.length; j++){list.add(cards[j]);}//通过内部函数shuffle()打乱集合的顺序Collections.shuffle(list);String str="";for(int k=0; k<list.size(); k++){ str+=list.get(k)+", ";}System.out.print("["+str.substring(0,str.lastIndexOf(","))+"]"); System.out.println();*///三、List集合-改进:List<Card> list = new ArrayList<Card>();for(int j=0; j<cards.length; j++){list.add(cards[j]);}Collections.shuffle(list);for(int k=0; k<list.size(); k++){cards[k]= list.get(k);}System.out.println(Arrays.toString(cards));




原创粉丝点击