如何在不使用数组的情况下生成随机数列表并确定最大数?

时间:2019-03-25 20:21:30

标签: java random

如何在Java中生成10至100之间的5个随机数的列表,并在不使用数组的情况下打印最大的随机数?

public class Random {
    public static void main(String[] args){
        for(int i = 0; i < 5; i++){
            System.out.println((int)((Math.random() * 91) + 10));
        }
    }
}

2 个答案:

答案 0 :(得分:2)

int maxRand = ThreadLocalRandom.current().ints(5, 10, 101).max().getAsInt();

This question涵盖了要点,但我们改称为.max().getAsInt()。调用.getAsInt()是安全的,因为我们知道流是非空的,因此会有最大值。

您也可以按照链接答案的建议使用new Random(),但是除非您有充分的理由手动构建ThreadLocalRandom.current()实例,否则我将默认使用Random

答案 1 :(得分:1)

您已经了解了“ Generate random int's”位。现在,您需要的是“没有数组的那些”的最大值。

由于无法将它们存储在数组中,因此仍然可以使用临时变量

public static void main(String[] args){
  int tempMax = 0;

  for(int i = 0; i < 5; i++){
    ...

使用它,我们可以在循环外保存一个值。现在,我们需要将温度值与生成的值进行比较,以查看是否生成了更大的值。

for(int i = 0; i < 5; i++){
  int newValue = (int)((Math.random() * 91) + 10);

  if (newValue > tempMax) {
    // code goes here
  }

注意:重要的是tempMax的起始值应小于生成的值(本例中为10)。否则,您可能会生成一个-1的字符串,并且您的最大值将报告为0。

在那之后,这只是一个简单的任务

if (newValue > tempMax) {
  tempMax = newValue;
}

一起

class Random {
  public static void main(String[] args) {

    int tempMax = 0;

    for(int i = 0; i < 5; i++){
      int newValue = (int)((Math.random() * 91) + 10);

      if (newValue > tempMax) {
        tempMax = newValue;
      }
    }

    int max = tempMax;

    System.out.println("Max value" + max);
  }
}

对我来说,这看起来像是作业,因此,我试图设计出实现此目的的思维过程。尽管如此,学习搜索Google(并以您的技能水平查找文档)仍然是一项重要技能,因为在Stack Overflow上不建议使用此类问题。