将数组中的内容随机打乱

问题:斗地主游戏,开局会将纸牌重新打乱,请用数组的随机排序实现

思考:

一、
遍历当前数组,Random.next位置下标取值放入新的数组中,为了一定随机不会取重,再加判断是否已加入过新的数组中

二、
正序或逆序遍历数组;将当前位置的元素与Random.next位置的元素调换位置


/**
* 打乱数组中元素的顺序
* @param args
*/
public static void randomAccessArray(String[] argsArray){
String[] cloneArray = argsArray.clone();
int length = cloneArray.length ;
Random random = new Random();
for(int index = 0 ; index < length ; index++){
int nextInt = random.nextInt(length);
String temp = cloneArray[index];
cloneArray[index] = cloneArray[nextInt];
cloneArray[nextInt] = temp ;
}
for(int index = 0 ; index < length ; index++){
System.out.print(cloneArray[index]+" ");
}
}


三、调用工具类


/**
* 调用工具类
* @param argsArray
*/
public static void collectionMethod(String[] argsArray){
int length = argsArray.length;
Collections.shuffle(Arrays.asList(argsArray));
for(int index = 0 ; index < length ; index++){
System.out.print(argsArray[index]+" ");
}
}

[url=http://mingyundezuoan.iteye.com/admin/blogs/2397875]Arrays.asList[/url]
[url=http://mingyundezuoan.iteye.com/blog/2397871]Collections.shuffle[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值