Java 如何计算数组随机索引位置上出现的随机值

Java 如何计算数组随机索引位置上出现的随机值,java,arrays,Java,Arrays,假设我有任意大小的数组。由于“某些操作”,数组的随机索引开始出现数字20。此20值可以是任何其他定义的值,但例如,将其设为20。所以如果我有数组inta[]={1,2,3,4,5,10}我做了些什么,数组将是inta[]={20,2,20,20,5,10}。假设我有三个计数器叫做inta,intb,intc 如果被20替换的值为1,则计数器int a只增加1 计数器int b->如果被20替换的值为3,则只增加1 计数器int c->如果被20替换的值为4,则只增加1 计数器可以是任何值,而不仅

假设我有任意大小的数组。由于“某些操作”,数组的随机索引开始出现数字20。此20值可以是任何其他定义的值,但例如,将其设为20。所以如果我有数组
inta[]={1,2,3,4,5,10}
我做了些什么,数组将是int
a[]={20,2,20,20,5,10}
。假设我有三个计数器叫做
inta,intb,intc

如果被20替换的值为1,则计数器int a只增加1

计数器
int b
->如果被20替换的值为3,则只增加1

计数器
int c
->如果被20替换的值为4,则只增加1

计数器可以是任何值,而不仅仅是1,3,4

然后,当我从保存值20的数组中选择随机索引时,我想将correctcounter增加1。所以,如果我得到随机索引[0],我想将计数器
inta
增加1


我怎么能做那样的事?谢谢。

您可以直接使用一系列
if
语句或
switch
语句

int[] array ={1,2,3,4,5,...,10};
int a = 0, b = 0, c = 0;
int index = ThreadLocalRandom.current().nextInt(array.length); //random index
switch(array[index]){
    case 1: ++a; break;
    case 3: ++b; break;
    case 4: ++c; break;
}
array[index] = 20;
使用
映射
更简单,使用此数据结构更容易推广算法

Map<Integer, Integer> count = new HashMap<>();
count.merge(array[index], 1, Integer::sum);
array[index] = 20;
// use count.getOrDefault(1, 0) to get the number of elements whose 
// values were 1 before being changed to 20
Map count=newhashmap();
merge(数组[索引],1,整数::和);
数组[索引]=20;
//使用count.getOrDefault(1,0)获取
//值在更改为20之前为1

您可以直接使用一系列
if
语句或
switch
语句

int[] array ={1,2,3,4,5,...,10};
int a = 0, b = 0, c = 0;
int index = ThreadLocalRandom.current().nextInt(array.length); //random index
switch(array[index]){
    case 1: ++a; break;
    case 3: ++b; break;
    case 4: ++c; break;
}
array[index] = 20;
使用
映射
更简单,使用此数据结构更容易推广算法

Map<Integer, Integer> count = new HashMap<>();
count.merge(array[index], 1, Integer::sum);
array[index] = 20;
// use count.getOrDefault(1, 0) to get the number of elements whose 
// values were 1 before being changed to 20
Map count=newhashmap();
merge(数组[索引],1,整数::和);
数组[索引]=20;
//使用count.getOrDefault(1,0)获取
//值在更改为20之前为1

您希望此选项适用于所有值还是仅适用于值
1
3
4
?此外,数组是否始终按照帖子中所述的方式初始化?@Turing85 for all value:)…假设值20可以是任何其他值。请回答问题并添加此要求。@Turing85 question updated,ps。数组始终使用相同的数字定义,然后,只有特定值“20”出现在数组的随机索引上。您希望它适用于所有值还是仅适用于值
1
3
4
?此外,数组是否始终按照帖子中所述的方式初始化?@Turing85 for all value:)…假设值20可以是任何其他值。请回答问题并添加此要求。@Turing85 question updated,ps。数组始终使用相同的数字定义,只有特定的值“20让我说”出现在数组的随机索引上。谢谢你的回复,但是如果我有200个数字的数组,我认为这个解决方案不是最好的方法。我应该在问题中提到这一点吗?使用
映射
-方法,然后结合循环。谢谢你的回复,但是如果我有200个数字的数组,我认为这个解决方案不是最好的方法。我应该在问题中提到这一点吗?使用
Map
-方法,然后结合循环。