如何从数组中获取,返回和删除随机元素,并且效率最高? 数组代码看起来像这样:
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
感谢您的帮助。
顺便提一下记忆游戏,所以如果它重复两次以上,我就会破坏游戏。
答案 0 :(得分:1)
您可以使用%运算符在数组中创建随机索引。使用Math.random获取小数随机数并使用它来创建随机索引,如下所示
String[] arr = {"Cat", "Dog", "Mouse", "Horse"};
int randPos = ((int)(Math.random()*1000))%arr.length;
String randEl = arr[randPos];
System.out.println(randEl);
您无法删除数组元素。您所能做的就是将其设置为null
答案 1 :(得分:0)
你可以这样做:
String[] datas = new String[3];
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
int i = rand.nextInt(datas.length);
String val = datas[i];
datas[i] = null;
return val;
答案 2 :(得分:0)
获取字符串:
.exe
要返回,请从方法中返回 字符串 Random r = new Random();
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
String selectedString = arr[r.nextInt(arr.length)];
。
要删除
selectedString
注意,这不会改变Random r = new Random();
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
arr[r.nextInt(arr.length)] = null
元素,array
的长度也不会减少。
如果您需要这种功能,我建议您使用{{1>} Arraylist
答案 3 :(得分:0)
您基本上无法从数组中删除元素。
请按照以下步骤操作:
List<String> list = new ArrayList<String>(Arrays.asList(arr));
int randPos = ((int)(Math.random()*1000))%arr.length;
list.remove(randPos);
arr = list.toArray(new String[0]);
希望这会有所帮助:)