• java随机生成n个不相同的整数


    使用java的 java.util.Random

    import java.util.Random;

    /**
    * 随机生成n个不同的数
    *
    * @author 张俊峰
    *
    */
    public class ArrayRandom {

    /**
    * 随机生成n个不同的数
    *
    * @param amount
    * 需要的数量
    * @param max
    * 最大值(不含),例:max为100,则100不能取到,范围为0~99;
    * @return 数组
    */
    public static int[] random(int amount, int max) {

    if (amount > max) { // 需要数字总数必须小于数的最大值,以免死循环!
    throw new ArrayStoreException(
    "The amount of array element must smallar than the maximum value !");
    }
    int[] array = new int[amount];
    for (int i = 0; i < array.length; i++) {
    array[i] = -1; // 初始化数组,避免后面比对时数组内不能含有0。
    }
    Random random = new Random();
    int num;
    amount -= 1; // 数组下标比数组长度小1
    while (amount >= 0) {
    num = random.nextInt(max);
    if (exist(num, array, amount - 1)) {
    continue;
    }
    array[amount] = num;
    amount--;
    }
    return array;
    }

    /**
    * 判断随机的数字是否存在数组中
    *
    * @param num
    * 随机生成的数
    * @param array
    * 判断的数组
    * @param need
    * 还需要的个数
    * @return 存在true,不存在false
    */
    private static boolean exist(int num, int[] array, int need) {

    for (int i = array.length - 1; i > need; i--) {// 大于need用于减少循环次数,提高效率。
    if (num == array[i]) {
    return true;
    }
    }
    return false;
    }

    /**
    * 随机生成一个数
    *
    * @param max
    * 最大值(不含)
    * @return 整型数
    */
    public static int random(int max) {

    return random(1, max)[0];
    }
    }

    使用:

    int[] arr = ArrayRandom.random(20, 100);
    for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
    }
    ---------------------

    原文:https://blog.csdn.net/u013271384/article/details/51766300

  • 相关阅读:
    一个java程序员自学IOS开发之路(十三)
    一个java程序员自学IOS开发之路(十二)
    一个java程序员自学IOS开发之路(十一)
    Swift学习笔记(六)
    一个java程序员自学IOS开发之路(十)
    Swift学习笔记(五)
    ubuntu服务器环境配置参考
    ubuntu添加新用户并添加管理员权限
    java GUI Graphics2D 绘图
    java链接数据库--Mysql
  • 原文地址:https://www.cnblogs.com/jdbn/p/10089753.html
Copyright © 2020-2023  润新知