1)static void shuffle(List<?> list) 使用默认随机源对列表进行置换,所有置换发生的可能性都是大致相等的。
2)static void shuffle(List<?> list, Random rand) 使用指定的随机源对指定列表进行置换,所有置换发生的可能性都是大致相等的,假定随机源是公平的。
注意:如果给定一个整型数组,用Arrays.asList()方法将其转化为一个集合类,有两种途径:
1)用List<Integer> list=ArrayList(Arrays.asList(ia)),用shuffle()打乱不会改变底层数组的顺序。
2)用List<Integer> list=Arrays.aslist(ia),然后用shuffle()打乱会改变底层数组的顺序。代码例子如下:
package com.item.test;
import java.util.*;
public class T1 {
public static void main(String[] args){
Random rand=new Random(54);
Integer[] ia={0,1,2,3,4,5,6,7,8,9};
List<Integer> list=new ArrayList<Integer>(Arrays.asList(ia));
System.out.println("前 shufflig: "+list);
Collections.shuffle(list,rand);
System.out.println("后 shuffling: "+list);
System.out.println("数组: "+Arrays.toString(ia));
List<Integer> list1=Arrays.asList(ia);
System.out.println("前 shuffling: "+list1);
Collections.shuffle(list1,rand);
System.out.println("后 shuffling: "+list1);
System.out.println("数组: "+Arrays.toString(ia));
}
}
效果:
package com.item.test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class Action {
public static void main(String[] args) {
//随机卡牌
List<Card> list=ResetCard(StartCard());
int i=0;
for (Card c:list) {
if(i%3==0){
System.out.println();
}
System.out.print(c.getIndex()+":"+c.getName()+"\t");
i++;
}
}
/**
* 随机排序
* @param list
* @return
*/
public static List<Card> ResetCard(List<Card> list){
Collections.shuffle(list);
return list;
}
/**
* 初始化卡牌
* @return
*/
public static List<Card> StartCard(){
List<Card> list=new ArrayList<>(54);
int i=0;
for (CardsEnum cardsEnum:CardsEnum.values()) {
for (CardColorEnum cardColorEnum:CardColorEnum.values()) {
list.add(new Card(cardsEnum,cardColorEnum,i++));
}
}
Card big=new Card();
big.setName(CardBossEnum.BIG.getName());
big.setIndex(i++);
Card small=new Card();
small.setName(CardBossEnum.SMALL.getName());
small.setIndex(i++);
list.add(big);
list.add(small);
return list;
}
}
效果如下:
上篇文章地址:【https://blog.csdn.net/feng8403000/article/details/114792614】
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有