繁体   English   中英

如何将 100 个随机元素添加到具有重复项的空数组中?

[英]How can I add 100 random elements to an empty array with duplicates?

在这段代码中,我改组了 100 个随机元素,而不是添加 100 个具有重复项的随机元素,并返回 10 个唯一键。 我怎样才能做到这一点?

public static void main(String[] args) {

    ArrayList<Integer> uniqueKeys = new ArrayList<Integer>();
    for (int i = 0; i < 101; i++) {
        uniqueKeys.add(new Integer(i));
    }
    Collections.shuffle(uniqueKeys);
    for (int i = 0; i < 10; i++) {
        System.out.println(uniqueKeys.get(i));
    }
}

我建议使用 Set 和 Random 的组合。 使用 Set,您将摆脱重复。 使用 Random,您将获得(伪)随机数。

final int KEYS_COUNT = 100;
final int MAX_KEY_VALUE = 1000;

Set<Integer> setOfKeys = new HashSet<>();
Random random = new Random();

while (setOfKeys.size() <= KEYS_COUNT) {
    setOfKeys.add(random.nextInt(MAX_KEY_VALUE));
}

Set setOfKeys将包含 100 个唯一的随机数,它们的值小于 1000。然后您可以使用toArray()方法从 Set 中创建数组。

如果您使KEYS_COUNT等于MAX_KEY_VALUE ,则值不会太随机,它们只会被打乱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM