List随机取集合里面的元素,通过Random随机取,回调直到取到指定数目为止

Posted 指导毕业设计Monkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List随机取集合里面的元素,通过Random随机取,回调直到取到指定数目为止相关的知识,希望对你有一定的参考价值。

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随机取,回调直到取到指定数目为止的主要内容,如果未能解决你的问题,请参考以下文章

在n个元素中随机挑选k个不重复元素,该怎么选

java中怎样在一个集合中随机取一个数?

list怎么获取元素里面的一个值

将list集合,元素随机打乱

python面试题

随机获取一个集合(List, Set)中的元素,随机获取一个Map中的key或value