java - 重复从Java中的arraylist中选择和删除一个随机条目
问题描述
编写一个程序,从数组列表中重复选择和删除随机条目。直到数组不再包含条目。
我很难在这里迭代它。因为每次arraylist的位置都是随机的。当随机数为 0 时,我还需要边缘情况。
无论如何,以下是我的代码。那么该怎么做呢?
import java.util.ArrayList;
import java.util.Random;
public class R3_1 {
public ArrayList<String> cars = new ArrayList<String>();
{cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");}
public String removeentry() {
int size = cars.size();
Random rn = new Random();
int a = rn.nextInt(size) ;
System.out.println(cars.get(a));
cars.remove(a);
a = a-1;
System.out.println(cars.get(a));
cars.remove(a);
a = a-1;
System.out.println(cars.get(a));
cars.remove(a);
System.out.println(cars.get(a));
cars.remove(a);
return "done";
}
}
解决方案
我建议一个while
循环,你每次都要求新的随机值,给定新的列表大小
public String removeentry() {
Random rn = new Random();
int a;
String removed;
while (!cars.isEmpty()) {
a = rn.nextInt(cars.size());
removed = cars.remove(a);
System.out.println(removed);
}
return "done";
}
也可以使用for
循环
public String removeentry() {
Random rn = new Random();
int a;
String removed;
for (int i = cars.size(); i > 0; i--) {
a = rn.nextInt(i);
removed = cars.remove(a);
System.out.println(removed);
}
return "done";
}
推荐阅读
- sql - 如何获取每个产品 ID 的每个卖家 ID 的最新值
- python - 将 Pandas 对象转换为分钟和秒
- reactjs - 当我删除输入时,所有其他输入数据都会变得清晰
- javascript - 在 Parcel React 上无法读取未定义错误的属性“类型”
- laravel - 同时从多个帖子中获取所有标签
- smartcontracts - 如何向 BSC 智能合约添加销毁功能?
- wordpress - 在虚拟网络中的 azure 容器实例上安装 WordPress 和 MySQL 数据库后出现 502 bad gateway 错误
- json - 使用 jq 提取数组中的部分字符串元素
- c# - 如何正确地将 MemoryStream 转换为 Array
- spring-boot - Camle MQTT 未能收到已发布的主题