Java 如何计算数组随机索引位置上出现的随机值
假设我有任意大小的数组。由于“某些操作”,数组的随机索引开始出现数字20。此20值可以是任何其他定义的值,但例如,将其设为20。所以如果我有数组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 计数器可以是任何值,而不仅
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
计数器可以是任何值,而不仅仅是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
-方法,然后结合循环。