随机数Random

创建随机数案例:

package com.javase.random;


import java.util.Random;


/*
随机数
*/
public class RandomTest01 {
    public static void main(String[] args) {
        // 创建随机数对象。
        Random random = new Random();
        
        // 随机产生一个int类型取值范围内的数字。
        int num1 = random.nextInt();
        System.out.println(num1);
        
        // 产生0到100之间的随机数,不能产生101
        // nextInt翻译为:下一个int类型的数据是101,表示只能取到100
        int num2 = random.nextInt(101);// 不包括101
        System.out.println(num2);
        
    }
}

生成五位不重复随机数:

package com.javase.random;


import java.util.Arrays;
import java.util.Random;


/*
编写程序,生成5个不重复的随机数。重复的话重新生成
最终生成的5个随机数放到数组中,要求数组中这5个随机数不重复。
*/
public class RandomTest02 {
    public static void main(String[] args) {
        
        // 创建Random对象
        Random random = new Random();
        
        int count = 0;
        
        // 准备一个长度为5的一维数组
        int[] arr = new int[5];// 默认值都是0
    
        for (int i = 0; i < arr.length; i++) {
            arr[i] = -1;
        }
        
        // 声明一个下标变量
        int index = 0;
        
        while (index < arr.length){
            // 生成随机数
            int number = random.nextInt(5);
            // 判断arr数组中有没有这个num
            // 如果没有这个num,就放进去
            if(!contains(arr,number)){
                arr[index++] = number;
            }
            count++;
        }
        
        Arrays.sort(arr);
        
        for (int i = 0; i < arr.length; i++) {
            System.out.print("最终的数组为 " + arr[i]);
            System.out.println();
        }
    
        System.out.println("一共循环了 = " + count + "次");
    }
    
    /*
    单独写一个方法,判断这个数组中是否包含这个元素
     */
    public static boolean contains(int[] arr,int key){
        /*// 这样写有BUG
        // 对数组进行升序
        Arrays.sort(arr);
        // 进行二分法查找
        // 二分法查找的结果 >= 0 说明,这个元素找到了,找到了表示存在。
        return Arrays.binarySearch(arr,key) >= 0;*/
        
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == key){
                // 条件成立了,表示true。不包含返回false
                return true;
            }
        }
        return false;
    }
}
原文地址:https://www.cnblogs.com/xlwu/p/13257895.html