如何从Java数组中获取4个随机值

如何从Java数组中获取4个随机值,java,arrays,random,Java,Arrays,Random,我是java编程新手,现在我想从一个字符串数组中获得4个随机值,我有以下代码,但如果我运行代码,我会得到4次相同的随机颜色 String [] color = {"red","blue","yellow", "purple", "black"}; int random = (int) (4* Math.random()); String randomColors = (color[random]); for (int i = 0; i <4

我是java编程新手,现在我想从一个字符串数组中获得4个随机值,我有以下代码,但如果我运行代码,我会得到4次相同的随机颜色

 String [] color = {"red","blue","yellow", "purple", "black"};
       int random = (int) (4*  Math.random());
        String randomColors = (color[random]);
        for (int i = 0; i <4 ; i++) {
            System.out.println(randomColors);
        }

有人知道我怎么解决这个问题吗。我也是编程新手。

您几乎得到了正确的答案,唯一的问题是int random=语句应该在for循环中,否则每次运行循环时都会得到相同的随机值

String [] color = {"red","blue","yellow", "purple", "black"};

for (int i = 0; i <4 ; i++) {
    int random = (int) (4*  Math.random());
    String randomColors = (color[random]);
    System.out.println(randomColors);
}
String [] color = {"red","blue","yellow", "purple", "black"};
for (int i = 0; i <4 ; i++) {
    int random = (int) (4*  Math.random());
    String randomColors = (color[random]);
    System.out.println(randomColors);
}

只要一遍又一遍地做。因此,不要在循环外创建随机数,而是在循环内创建


如果需要一个随机值,请多次重复此操作。

如果要使用随机颜色的新数组,则必须声明并初始化它

String[] randomColors = String[4];
然后,必须使用其他数组的随机值填充该数组。要获得随机索引,请执行以下操作

for(int i=0; i<5; i++){
randomcolors[i] = colors[(int )(Math.random() * 4 + 0)];
}

问题是你们的随机数发生器只工作一次。您可以通过在已编码的for循环中添加代码的第2行和第3行来解决此问题。祝你好运

您需要将随机数生成器放入循环中:

Random rand = new Random();
for (int i = 0; i < 4 ; i++) {
    int rand_int = rand.nextInt(5); // Generate random integers in range 0 to 4
    String randomColors = (color[rand_int]);
    System.out.println(randomColors);
}

由于索引可以增加到4,因此应将随机整数值设置为[0,4],否则将永远不会打印最后一种黑色

如果需要不同的值,则需要在循环内调用Math.random。现在,您只需打印相同的值4次。@Andreas谢谢mate@Arvind如何在循环内移动2条语句。数组索引的可能重复项基于0。你的for循环条件是错误的。哦,更改了它。请添加一些解释。仅代码不够我认为使用Random类是好的,但如果采用这种方法,最好将Random对象放在循环之外,以避免不必要的对象创建。感谢Corey修改了我的代码,不创建不必要的对象始终是一个好的实践。
System.out.println(Arrays.toString(randomcolors));
Random rand = new Random();
for (int i = 0; i < 4 ; i++) {
    int rand_int = rand.nextInt(5); // Generate random integers in range 0 to 4
    String randomColors = (color[rand_int]);
    System.out.println(randomColors);
}