Java 在不向StringArray添加更多内容的情况下添加概率

Java 在不向StringArray添加更多内容的情况下添加概率,java,random,probability,arrays,Java,Random,Probability,Arrays,我在这些图像的网格中使用了这个string[]。网格是使用随机变量随机生成的。现在我使用的方法是只添加一个对象多次。但是如果两张图片是相同的,我的重新生成一张图片的算法(例如:egg tree blackcar blackcar pinkcar)不起作用,因为我检查了图片的数组索引 String bingoObject[] = { "black_car", "gray_car", "white_car", "red_car", "yel

我在这些图像的网格中使用了这个
string[]
。网格是使用随机变量随机生成的。现在我使用的方法是只添加一个对象多次。但是如果两张图片是相同的,我的重新生成一张图片的算法(例如:egg tree blackcar blackcar pinkcar)不起作用,因为我检查了图片的数组索引

String bingoObject[] = {  
    "black_car",  
    "gray_car",  
    "white_car",  
    "red_car",  
    "yellow_car",  
    "blue_car",  
    "pink_car",  
    "green_car",  
    "boat",  
    "tree",  
    //ADDED MORE FOR CHANCES  
    "black_car",
    "black_car",  
    "gray_car",   
    "white_car",  
    "red_car",  
    "blue_car",  
    "green_car"
};

有没有其他方法可以获得随机数并为每个对象分配概率,而无需将它们添加到数组中更多次?这将清理并帮助我完成许多混乱的编码。

我个人不知道任何分配概率的方法,但我们可以创建自己的方法。这并不是最有效的方法,但它确实创造了一种伪概率

        int [] numbers = {1,2,3,4,5,6,7,8,9,10};
        int index = 0;
        Random rnd = new Random();

        for (int i = 0; i < 3; i ++)
        {
            index = index + rnd.nextInt(numbers.length);
        }
        index=index/3;

        System.out.println(numbers[index]);
int[]数字={1,2,3,4,5,6,7,8,9,10};
int指数=0;
随机rnd=新随机();
对于(int i=0;i<3;i++)
{
索引=索引+rnd.nextInt(数字.长度);
}
指数=指数/3;
System.out.println(数字[索引]);
在大多数情况下,这将使数组索引偏离中间位置。因此,从理论上讲,最常见的值将接近数组的中间,而边界将非常罕见

您可以将“3”值更改为您想要的任何值,该数字越高,数字应该越偏中

运行10次后,我的值为:
2,6,7,2,6,5,6,6,4,5

看看这个有趣的方法,我会试试。因此,通过移动我想最有可能获得的项目,我放在了StruGrand的中间?谢谢