0

我如何继续跟踪的价值,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

4 回答 4

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变量。

于 2013-11-06T19:12:58.790 回答
2

第 1 步:创建一个整数数组列表

第二步:生成随机数

第 3 步:在 arraylist 中存储随机数

第 4 步:在生成新的随机数后比较这个数组列表

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

第6步:如果arraylist中不存在随机数,则生成另一个随机数

//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);
    }
于 2013-11-06T19:16:49.630 回答
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);
于 2013-11-06T19:14:23.990 回答
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>在这里可以派上用场。

于 2013-11-06T19:14:34.800 回答