package com.qfedu.fmmall;
import java.util.*;
public class RandomCaseUtil{
/*
* 随机抽取理赔案件数,list 理赔总的案件数
* count 抽取数
*/
public static List getSubStringByRadom(List list, int count) {
List backList = null;
backList = new ArrayList<String>();
Random random = new Random();
int backSum = 0;
if (list.size() >= count) {
backSum = count;
} else {
// 判断抽取的数目是否大于集合大小的总数
backSum = list.size();
}
// 去除重复的随机数
Set<Integer> set = new HashSet<>();
for (int i = 0; i < backSum; i++) {
// 随机数的范围为0-list.size()-1
int target = random.nextInt(list.size());
set.add(target);
}
jugeSize(set,backSum,list,random);
for (Integer i : set) {
backList.add(list.get(i));
}
return backList;
}
private static void jugeSize(Set set, int backSum, List list, Random random) {
if(set.size() < backSum){
for (int i = 0; i < backSum - set.size(); i++) {
int target = random.nextInt(list.size());
set.add(target);
}
jugeSize(set,backSum,list,random);
}
}
public static void main(String[] args) {
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List subStringByRadom = getSubStringByRadom(integers, 5);
System.out.println(subStringByRadom);
}
}
List随机取集合里面的元素,通过Random随机取,回调直到取到指定数目为止
于 2022-05-11 16:26:55 首次发布