跟踪java中的随机数

时间:2013-11-06 19:10:49

标签: java

如何跟踪randomNumber的值,然后将其用于其他位置。在下面的代码中,每次单击鼠标时,我都会得到0到10之间的随机数。

如果我单击3次并获得值1,6和7,我如何跟踪这3个值并在其他地方使用它们。我想将它们存储在变量中,例如int firstClick=?;int secondClick=?;int thirdClick=?;我该怎么做。

void mousePressed(){
int randomNumber= int(random(11));
System.out.println(randomNumber);
}

4 个答案:

答案 0 :(得分:3)

在班级的某个地方使用ArrayList

public class MyClass {

    private ArrayList<Integer> randomNumbers = new ArrayList<>();

    public void mousePressed() {
        int randomNumber= int(random(11));
        randomNumbers.add(randomNumber);
        System.out.println(randomNumber);
    }

    public void listNumbers() {
        for (Integer number : randomNumbers) {
            System.out.println(number);
        }
    }

}

这样,您可以跟踪任意数量的鼠标点击次数及其生成的数字。您不必将每个单独的号码分配给特定的int变量。

答案 1 :(得分:2)

第1步:创建一个整数的arraylist

第2步:生成随机数

第3步:在arraylist中随机存储

步骤4:在生成新的随机数

之后比较这个arraylist

步骤5:如果arraylist中不存在新的随机数,请使用它,将此no存储在arraylist中

步骤6:如果arraylist中存在随机no,则生成另一个随机no

//global variable
List<Integer> randomNumberArray = new ArrayList<Integer>();

然后

void mousePressed() 

    {
        for (int i = 0; i < 5; i++) 
        {
            int temp = generateRandomNumber();
            if (!randomNumberArray.contains(temp)) 
            {
                randomNumberArray.add(temp);
            }
        }
        System.out.println(randomNumberArray);
    }

    public int generateRandomNumber() 
    {
        Random randomNumber = new Random();
        return randomNumber.nextInt(20);
    }

或者您可以简单地使用Set

void mousePressed() 

    {
       Set<Integer> mySet = new HashSet<Integer>();
    for(int i=0;i<5;i++)
    {
        int temp = generateRandomNumber();
        //System.out.println(temp);
        mySet.add(temp);
    }
    System.out.println(mySet);
    }

答案 2 :(得分:0)

final List<Integer> randomNumbers= new ArrayList<Integer>();
for (int i=0;i<3;i++){
   randomNumbers.add(random(11));
}
// get first one
int i = randomNumbers.get(0);

答案 3 :(得分:0)

这将需要一个范围超出您正在处理的方法的变量。一些选项是:

// Have the random number be the return value of the method:
public int mousePressed() { return int(random(11)); }

// Have the random number be assigned to a class scoped variable:
static int someN;
public void mousePressed() { someN = int(random(11)); }  

显然,这需要扩展为分配/返回三个(或多个)值。对象ArrayList<Integer>可以派上用场。