Java 如何选择范围内的随机数而不重复

Java 如何选择范围内的随机数而不重复,java,arrays,random,Java,Arrays,Random,我想随机设置数组中的可见(假)元素。但是当你写这段代码的时候 int random = (int) (Math.random() * 24 + 1); myLabel.get(随机).setVisible(假) 有时标签总是可见的。因为随机数给出了相同的数字。我不是说如何生成没有重复的数字。因为即使数字不重复,random可能会选择相同的数字两次或两次以上 假设我生成1到5个整数,没有重复项,比如{2,4,5,1,3}。当我尝试随机选择时,程序可能会选择4个选项两次,可能它永远不会选择3个选项

我想随机设置数组中的可见(假)元素。但是当你写这段代码的时候

int random = (int) (Math.random() * 24 + 1);
myLabel.get(随机).setVisible(假)

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

假设我生成1到5个整数,没有重复项,比如{2,4,5,1,3}。当我尝试随机选择时,程序可能会选择4个选项两次,可能它永远不会选择3个选项5个选项


我希望我能把它写得正确而清晰。

与其使用数组,不如使用列表。根据列表的大小生成随机数。并在使用时将其移除。这是一个简单的测试用例,展示了我的意思

    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);
    }
listmylist=newarraylist(Arrays.asList(newinteger[]{1,2,3,4,5}));
对于(int x=0;x<5;++x){
int random=(int)(Math.random()*myList.size());
整数myInt=myList.remove(随机);
System.out.println(myInt);
}

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

    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);
    }
listmylist=newarraylist(Arrays.asList(newinteger[]{1,2,3,4,5}));
对于(int x=0;x<5;++x){
int random=(int)(Math.random()*myList.size());
整数myInt=myList.remove(随机);
System.out.println(myInt);
}

我不清楚你的意思。当你有一个包含从1到5的随机顺序的数字的列表时,你所需要的就是一个接一个地获取。为什么要额外从这个列表中随机选择一个数字呢?我现在明白了。谢谢你的帮助:)一方面,我同意这是一个复制品,我可以复制它,但是。。。相关问题的答案(有很多)有点。。。无聊的。。我宁愿在这里结束之前回答你…我不清楚你的意思。当你有一个包含从1到5的随机顺序的数字的列表时,你所需要的就是一个接一个地获取。为什么要额外从这个列表中随机选择一个数字呢?我现在明白了。谢谢你的帮助:)一方面,我同意这是一个复制品,我可以复制它,但是。。。相关问题的答案(有很多)有点。。。无聊的。。我宁愿在这里结束之前回答你。。。