You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用random1、random2从listOfNums选数存入numberSelected ArrayList的最优方案

嘿,这个需求其实很好实现,最快最简洁的写法得看你用的编程语言,不过看你提到了ArrayList和random相关的方法,我默认是Java环境哈,给你几种最直接的写法:

最快捷简洁的实现方式

核心逻辑都是通过随机索引从源列表listOfNums中获取元素,再添加到目标numberSelected集合,根据你的random1、random2的使用场景分两种情况:

情况1:用两个已初始化的Random实例各取一个数

如果random1和random2是你已经创建好的Random对象,那一行代码就能完成需求(或者拆成两行更易读):

// 一行简洁版
numberSelected.addAll(List.of(listOfNums.get(random1.nextInt(listOfNums.size())), listOfNums.get(random2.nextInt(listOfNums.size()))));

// 拆分易读版
numberSelected.add(listOfNums.get(random1.nextInt(listOfNums.size())));
numberSelected.add(listOfNums.get(random2.nextInt(listOfNums.size())));

情况2:仅需随机选取两个数(单Random实例即可)

如果你只是需要从列表里选两个随机数,甚至不用两个Random实例,一个就够,代码同样简洁:

Random random = new Random();
numberSelected.add(listOfNums.get(random.nextInt(listOfNums.size())));
numberSelected.add(listOfNums.get(random.nextInt(listOfNums.size())));

额外优化:避免重复选取(如果有需求)

如果要求选中的两个数值不能重复,可以加个简单的循环判断:

int num1 = listOfNums.get(random1.nextInt(listOfNums.size()));
int num2;
do {
    num2 = listOfNums.get(random2.nextInt(listOfNums.size()));
} while (num2 == num1);
numberSelected.addAll(List.of(num1, num2));

内容的提问来源于stack exchange,提问作者user9273028

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:33:58