挑选随机数组元素

时间:2018-08-31 23:10:43

标签: java arrays random

我正在尝试从此数组中获取随机值。当我运行程序时,它只为x打印0。为什么不打印从函数返回的更新值?

import java.util.*;
public class randomArray
{
    public static void main(String[] args)
    {
        int[] myArray = new int[]{1,2,3};
        int x = 0;
        getRandom(myArray, x);
        System.out.println(x);
    }
    public static int getRandom(int[] array, int h) 
    {
        int rnd = new Random().nextInt(array.length);
        return h;   
    }
}

3 个答案:

答案 0 :(得分:1)

您需要将getRandom()更改为以下内容

public static int getRandom(int[] array) 
{
    int rnd = new Random().nextInt(array.length); //generate random index
    return array[rnd]; // get element by random index
}

然后致电System.out.println(getRandom(myArray));

答案 1 :(得分:1)

Java通过值而不是通过引用传递参数,因此 x 值不会在getRandom方法内更新。 因此,当您调用getRandom时,将创建 h 变量,并获取参数x值(即0值)的副本。然后,您将返回值为0的h值。

答案 2 :(得分:0)

Java是原始类型的“按值传递”。这意味着当您将数字作为参数传递给另一个方法时,原始值将不会在该方法内部被修改。您期望x变量成为h变量,但这是两个不同的变量,更新h不会更新'x'。