填充5个随机整数列表的简单方法

时间:2014-02-25 20:16:39

标签: java

我想从0到4随机填充一个包含5个元素的数组列表。

让我说我的ArrayList randomizer = new ArrayList();

我所拥有的是以下内容......

 for (int itter = 0; itter < 5; itter++) {
                        do {
                                random = randInt(0, 4);
                        } while (randomizer.contains(random));
                        if (randomizer.contains(random)) {
                        } else {
                                randomizer.add(random);
                        }

有没有更快的方法将5个整数随机添加到arraylist?谢谢!

5 个答案:

答案 0 :(得分:5)

尝试Collections.shuffle

List<Integer> randomizer = Arrays.asList(0, 1, 2, 3, 4);
Collections.shuffle(randomizer);
System.out.println(randomizer);

示例输出:

[3, 4, 2, 0, 1]

附录:为了完整起见,对于手头的问题,使用Arrays.asList很简洁,但在一般情况下,使用for循环来填充初始列表更好,更灵活。

答案 1 :(得分:3)

        LinkedList<Integer> list = new LinkedList<Integer>();
        for(int i=0; i<5; i++) {
            list.add(i);
        }
        Collections.shuffle(list);

答案 2 :(得分:1)

要获得此类随机集合,最好的方法是使用Collections.shuffle。使用可能的值填充数组,然后进行随机播放并完成。

(你也可以做同样的事情,例如从0,100中挑选10个数字。填充一个包含100个数字的数组然后将其洗牌,然后使用前10个。)

答案 3 :(得分:0)

你可以简单地改组阵列

import java.util.Collections;
import java.util.Arrays;
import java.util.List

public class Test {

   public static void main( String args[] ){
      List X = Arrays.asList(0, 1, 2, 3, 4);
      Collections.shuffle( X );
   }

}

答案 4 :(得分:0)

你可以通过创建一个&#34;选择&#34;来加快速度。首先列出(0,1,2,3,4)。然后循环4次(for(int i = 0; i&lt; 4; i ++){with int choice = randInt(0,4-i);在该位置添加选择,从选择中删除该位置列表并继续)。 完成循环后,将最后剩下的选择放入结果中。

不要直接尝试生成一个整数,如果已经选择了该整数则重试