【问题标题】:how to add random Integers to ArrayList without duplication [duplicate]如何在不重复的情况下将随机整数添加到 ArrayList [重复]
【发布时间】:2017-03-29 00:23:31
【问题描述】:

我有这个空数组列表。 我想添加 6 个随机生成的整数(1 到 6),但我不希望它被复制。 不知何故,我无法为此创建循环。 我不断得到重复的值,甚至 Array List 的大小也在不断变化。 这是我的代码。 提前致谢。

    ArrayList al = new ArrayList();

    int rnd = new Random().nextInt(6)+1;

    while(!(al.contains(rnd))){

                for(int i=0; i<=5; i++){

                    al.add(rnd);
                    rnd = new Random().nextInt(6)+1;

                }

                rnd = new Random().nextInt(6)+1;

    }

    System.out.print(al);

【问题讨论】:

  • 看看ArrayList的.contains()方法。
  • 你为什么不用Set?不允许重复
  • 添加到Set,然后转换为ArrayList。
  • 将数字 1-6 放入列表中并随机播放。
  • 事情就是这样。当我使用 Set ( HashSet) 时,它以升序给出输出,因为整数大小太小。它总是给出 [1,2,3,4,5,6]。我相信这就是 HashSet 的工作原理。但是,我需要无序的方式。不过感谢您的回复。我可以使用 shuffle(),但我需要它首先在我的范围内添加一个随机整数,然后创建另一个随机数,如果它不在列表中,则添加它,并重复它直到 6。没有洗牌。

标签: java loops arraylist random


【解决方案1】:

获取 LIST 中的所有值,然后将该列表放入 Set 中(Set 中不允许重复。)

【讨论】:

    猜你喜欢
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多