集合随机取2个以上元素怎么取?

List data = new ArrayList<>();
data.add("鼠");
data.add("牛");
data.add("虎");
data.add("兔");
data.add("龙");
data.add("蛇");
data.add("马");
data.add("羊");
data.add("猴");
data.add("猪");
data.add("狗");
data.add("鸡");

15个回答

public static List getRandomList(List paramList,int count){
if(paramList.size() return paramList;
}
Random random=new Random();
List tempList=new ArrayList();
List newList=new ArrayList();
int temp=0;
for(int i=0;i<count;i++){
temp=random.nextInt(paramList.size());//将产生的随机数作为被抽list的索引
if(!tempList.contains(temp)){
tempList.add(temp);
newList.add(paramList.get(temp));
}
else{
i--;
}

}
return newList;
}

Collections.shuffle(data),打乱顺序,然后取值就可以了。

Integer random=RandomUtils.nextInt(list.size()); 用这个

这是一个数学问题,将十二生肖抽象为连续的12个数字比如0-12,区间[0,1),[1,2),[2,3)...[11,12)分别代表一个生肖。完成取两个随机生肖,可以分两步走,第一步,从0-12中随机选取一个数。第二步,去除一个生肖的区间长度,0-11之间表示除刚选择生肖外的11个生肖(先确定哪个区间对应哪个生肖),然后从0-11之间随机选择一个数。

直接从 0-11 先取一个随机数,然后再取一个随机数,如果和前一个相同则再取一次,直到取出2个不同的随机数不就可以了?

获取数组长度,在0-长度之间随机取数,然后作为数组的index进行取值

使用java随机数,长度为list的size

for循环,然后用random随机取集合下标

先用random随机一个大于等于2,小于等于12的数,确定出要取几个元素。
然后for循环确定要取的元素个数,再次用random取出0-11的随机数,
将随机数作为你list集合的索引取出对应的值就可以了

ray_tai_1007
ray_tai_1007 同意
大约 2 年之前 回复

循环过程配合随机函数可以实现

共15条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐