ArrayList<Integer> lista = new ArrayList<Integer>();
lista.add(159);
lista.add(170);
lista.add(256);
例如,我在我的arraylist中得到了这3个数字,我想随机获得其中一个。 怎么可能?
答案 0 :(得分:16)
使用Random类的一种方法:
ArrayList<Integer> lista = new ArrayList<Integer>();
lista.add(159);
lista.add(170);
lista.add(256);
Random r = new Random();
System.out.println(lista.get(r.nextInt(lista.size())));
或者使用shuffle:
ArrayList<Integer> lista = new ArrayList<Integer>();
lista.add(159);
lista.add(170);
lista.add(256);
Collections.shuffle(lista);
System.out.println(lista.get(0));
答案 1 :(得分:8)
您可以使用Random
生成int
作为随机索引。
Random rand = new Random();
Integer randomInt = lista.get(rand.nextInt(lista.size()));
此处,rand.nextInt(lista.size())
会在0
和size - 1
之间生成随机索引。
返回一个伪随机,均匀分布的int值介于0(包含)和指定值( exclusive )之间,从该随机数生成器的序列中提取。
答案 2 :(得分:1)
我们的想法是生成一个新的随机索引并使用该随机索引从数组中获取一个radom数。
为此
Math.random()
生成一个随机数,返回带有正号的double值,大于或等于0.0且小于1.0。 这给了我们以下代码。
int randomIndex = (int)(Math.random() * lista.size());
System.out.println(lista.get(randomIndex));
请注意,此处生成的随机数不是真正随机的,而是使用伪随机生成器生成的,这足以满足大多数日常使用。
如果您感到好奇,可以在这里阅读更多关于PRNG的内容:)
答案 3 :(得分:0)
对列表中的元素数量使用随机数,并将其用作索引。
答案 4 :(得分:-1)
这样做:
Random rn = new Random();
int i = rn.nextInt() % lista.size();
System.out.println(lista.get(i));