如何在不重复的范围内选择随机数[重复]

问题描述 投票:1回答:1

我想在数组中随机设置Visible(false)元素。但是写这段代码的时候

int random = (int) (Math.random() * 24 + 1);

myLabel.get(random).setVisible(false);

有时标签总是可见的。因为随机给出相同的数字。我不是说如何生成数字而不重复。因为即使数字都不重复,所以random可能会选择相同的数字两次或更多次。例如;

假设我生成1到5个整数,而没有像{2,4,5,1,3}这样的副本。当我尝试随机选择时,该程序可能会选择4次两次,也许永远不会为5个选项选择3。

我希望我可以正确,清晰地编写它。

java arrays random
1个回答
0
投票

除了使用数组,还可以使用列表。根据列表的大小生成随机数。并在使用时将其删除。这是一个简单的测试用例,显示了我的意思。

    List<Integer> myList = new ArrayList<>(Arrays.asList(new Integer[]{1, 2, 3, 4, 5}));
    for (int x = 0; x < 5; ++x) {
        int random = (int) (Math.random() * myList.size());
        Integer myInt = myList.remove(random);
        System.out.println(myInt);
    }
© www.soinside.com 2019 - 2024. All rights reserved.