android随机抽奖代码_Android 中从一个集合或者数组中随机抽取几个不同的值

从一个集合或者数组中随机抽取几个不同的值,不同的开发者应该有不同的实现方式,我这里说一下我这边项目中用到的一种实现方法

核心代码如下:

1、判断的方法

/**

* 使用一个List来保存数组,每次随机取出一个移除一个。

*/

public Integer[] getRandomArray(int n, Integer[] strArray) {

List list = new ArrayList();

for (int i = 0; i < strArray.length; i++) {

list.add(strArray[i]);

}

Random random = new Random();

// 当取出的元素个数大于数组的长度时,返回null

if (n > list.size()) {

return null;

}

Integer[] result = new Integer[n];

for (int i = 0; i < n; i++) {

// 去一个随机数,随机范围是list的长度

int index = random.nextInt(list.size());

result[i] = list.get(index);

list.remove(index);

}

return result;

}

2、使用方式

//创建一个集合来存放可以获取的值

private ArrayList canSelectIntArr = new ArrayList<>();

private Integer[] canSelectIntStrs = null;

/**

* 初始化可以可以选择的动作数

*/

private void initCanSelectIntsArr() {

canSelectIntArr.clear();

canSelectIntArr.add(0);

canSelectIntArr.add(1);

canSelectIntArr.add(2);

canSelectIntArr.add(3);

canSelectIntStrs = new Integer[canSelectIntArr.size()];

for (int i = 0; i < canSelectIntArr.size(); i++) {

canSelectIntStrs[i] = canSelectIntArr.get(i);

}

}

//最终调用

Integer[] randomArray = getRandomArray(actionAmount, canSelectIntStrs);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值