简体   繁体   English

根据给定的数字集在Java中生成随机数

[英]To generate random numbers in java from given set of numbers

Is it possible to generate random no. 是否可以生成随机编号? from the given set of no. 从给定的编号 like 5, 50, 20? 喜欢5、50、20? If so please give simple example thanks. 如果是这样,请给一个简单的例子,谢谢。

Here's one way to do it. 这是一种方法。

import java.util.concurrent.ThreadLocalRandom;

class randomFromList {
    public static void main(String[] args) {
        int x = 0;
        int[] arr = {5, 50, 20}; // any set of numbers of any length
        for (int i = 0; i < 100; i++) { // prints out 100 random numbers from the list
            x = ThreadLocalRandom.current().nextInt(0, arr.length); // random number
            System.out.println(arr[x]); // item at random index
        }    
    }
}

It is better to use java.util.concurrent.ThreadLocalRandom as of Java 1.7+. 从Java 1.7+开始,最好使用java.util.concurrent.ThreadLocalRandom See here for why. 请参阅此处以了解原因。 However, if you're using a version that predates Java 1.7, use Random 但是,如果您使用的是Java 1.7之前的版本,请使用Random

public class RandomNumbers {

  public static void main(String[] args) {
    int[] randomNumbers = new int[] { 2, 3, 5, 7, 11, 13, 17, 19 };

    Random r = new Random();
    int nextRandomNumberIndex = r.nextInt(randomNumbers.length);
    System.out.println(randomNumbers[nextRandomNumberIndex]);
  }

}

You can use Random.nextInt() to get a random index . 您可以使用Random.nextInt()获取随机index

Use that index to get you pseudo random element: 使用该index可以获取伪随机元素:

int[] arr = {1, 2, 3};
int randomIndex = Random.nextInt(arr.length);
int randomVal = arr[randomIndex];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM