获取随机数,且不重复.

Posted zengsiqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取随机数,且不重复.相关的知识,希望对你有一定的参考价值。

package com.data.manger.follow.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;

/**
 * 获取随机数,且不重复.
 */
public class Test{
    public static void main(String[] args) {
        //定义随机取的位数(范围判断)
        int n = Integer.parseInt("0000".replace("0", "9"));
        //定义随机生成的数据
        int[] randomDataCode = new int[n];
        for (int i = 0; i < n; i++) {
            randomDataCode[i] = i + 1;
        }
        System.out.println("默认顺序生成的数组总量   ====== " + Arrays.toString(randomDataCode));
        Random r = new Random();
        for (int i = 0; i < n; i++) {
            int in = r.nextInt(n - i) + i;
            int t = randomDataCode[in];
            randomDataCode[in] = randomDataCode[i];
            randomDataCode[i] = t;
        }
        System.out.println("打乱后的数组     ======  " + Arrays.toString(randomDataCode));
        //数组保存到list
        List<Integer> randomDataCodeId = new ArrayList<Integer>(randomDataCode.length);//随机取的所有数值
        for(Integer uid: randomDataCode){
            randomDataCodeId.add(uid);
        }
        //判断随机数是否存在
        List<Integer> dataList = new ArrayList<>();//已经存在的数值
        dataList.add(1111);
        dataList.add(2222);
        for (Object data : dataList) {
            for (Integer list : randomDataCodeId) {
                if (list == data) {
                    randomDataCodeId.remove(list);
                }
            }
        }
        System.out.println("随机取到的数为 ====="+ randomDataCodeId.get(0));
    }

}

 

以上是关于获取随机数,且不重复.的主要内容,如果未能解决你的问题,请参考以下文章

怎么才能用js实现随机选取10–100之间的10个且不重复的数字存入一个数组?

重复10个1~60顺序且不重复的随机数

js如何从一个数组中随机取出n个不同且不重复的值

js如何从一个数组中随机取出n个不同且不重复的值

请问用java从1-33个整数中随机抽取6个数字 且不重复 1-16随机抽取一个数,给小球?

怎么用python生成随机的且不重复的整数?