Select a random value from an Array

26,227

Just clubsArray[new Random().nextInt(clubsArray.length)] would work

Or to randomize the order of elements, use List<?> clubsList=Arrays.asList(clubsArray); Collections.shuffle(clubsList);.

Share:
26,227
Craig
Author by

Craig

Updated on May 05, 2020

Comments

  • Craig
    Craig about 4 years

    I have an Array of number values, and I want to randomly select a value from in that array and then insert it in to an int variable.

    I'm not sure what code you will need to see. So,

    Here is the for loop that I'm using to generate 13 numbers (1-13) and insert them in to the Array.

        int clubsArray []; 
        clubsArray = new int [13]; 
    
        for(int i = 0; i < clubsArray.length; i++) { 
    
            clubsArray[i] = i +1; 
    
        }
    

    That works fine, but now I need to select for example 2 random values from in that array (and then insert it in to a variable to be used later on.

    I've looked around on many websites and I've seen things like ArrayList<String> in order to insert values in to an Array and then use Random generator = new Random() to select the value from the array and then .remove() to remove it from the array. But when ever I have used that it doesn't work.

  • Craig
    Craig over 12 years
    Thank you. If I were to use this, should I then remove it from the Array also? (to prevent duplicates being chosen at a later stage)
  • danr
    danr over 12 years
    @Craig: Removing an element in an array is O(n), so maybe that is not what you want to do. Maybe you want to shuffle the entire array first? (as one would shuffe a deck of cards) This is how to do it in C
  • נשמה קשוחה
    נשמה קשוחה over 12 years
    Well, probably, or instead check if the output array already has it, and if yes, chose an other one.