龙空技术网

Java实现传入一个list返回一个打乱顺序的list

小林软件工作室 195

前言:

目前兄弟们对“java list随机乱序”大概比较关切,咱们都需要知道一些“java list随机乱序”的相关文章。那么小编也在网络上收集了一些有关“java list随机乱序””的相关资讯,希望小伙伴们能喜欢,大家一起来学习一下吧!

场景

有时候我们需要随机获取list中的数据来做判断,判断不通过再随机取下一个数据,如果每次都随机取获取太麻烦了,我们可以直接将list中的数据随机打乱,然后返回list就可以循环该list来处理就可以了。

代码实现

/** * suibibk.com * @author 小林同学 * */public class RandomList {    /**     * 输入一个list,返回一个打乱顺序的list     * @param list     * @return     */    public static List<String> getRandomList(List<String> list){        if(list==null||list.size()==0) {            return null;        }        //1、建立一个随机数生成器对象        SecureRandom random = new SecureRandom();        //2、建立一个乱序的对象        List<String> result = new ArrayList<String>();        boolean flag = true;        int size = 0;        while(flag) {            size = list.size();            //随机生成一个下标            int index = random.nextInt(size);            //将内容添加入list中            result.add(list.get(index));            //从原有的list中移除            list.remove(index);            if(list.size()==0) {                flag=false;            }        }        return result;    }    public static void main(String[] args) {        for (int i=0;i<100;i++) {            //不能用这个方法获取list,这个方法获取的是AbstractList            //List<String> list = Arrays.asList(str);            List<String> list = new ArrayList<>();            list.add("1");            list.add("2");            list.add("3");            list.add("4");            list.add("5");            List<String> result = getRandomList(list);            System.out.println(result);        }    }}
测试结果
...[3, 5, 4, 2, 1][3, 2, 5, 1, 4][4, 5, 2, 1, 3][2, 3, 4, 1, 5][5, 1, 4, 2, 3][2, 1, 3, 4, 5]...

标签: #java list随机乱序