[英]How to get, return and delete a random element in an array?
如何从数组中获取、返回和删除随机元素以及最有效的方法? 数组代码如下所示:
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
谢谢你的帮助。
顺便说一下,这是一个记忆游戏,所以如果它重复两次以上,我会毁了游戏。
您可以使用 % 运算符在数组中创建随机索引。使用 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
你可以做 :
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;
获取字符串:
Random r = new Random();
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
String selectedString = arr[r.nextInt(arr.length)];
对于返回,从方法中返回String selectedString
。
删除
Random r = new Random();
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
arr[r.nextInt(arr.length)] = null
请注意,这不会移动array
元素,也不会减少array
的长度。
如果您需要这种功能,我建议使用像Arraylist这样的Collection
您基本上无法从数组中删除元素。
请按照以下步骤操作:
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]);
希望这可以帮助 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.