How to select random values from a given range

前端 未结 6 634
一整个雨季
一整个雨季 2021-01-06 10:44

I\'m trying to create an android application which will generate random series of values (integer numbers in this case) in a given range (but NOT equal betw

6条回答
  •  时光取名叫无心
    2021-01-06 11:23

    final StringBuilder builder = new StringBuilder();
    final Random r = new Random(System.currentTimeMillis());
    final Set numbers = new HashSet();
    
    public String getRandomNumbers(int count,int min, int max)
    {
        if(count > (max - min) || (max < min))
            throw new IllegalArgumentException("There is an error with the parameters provided");
    
        builder.setLength(0); //Clear StringBuilder
        numbers.clear(); //Clear the number list
    
        int i=0;
        while( i < count )
        {
            int aRandomNumber = (r.nextInt() % max) +min;
    
            if(numbers.contains(aRandomNumber)) // If we have seen this number already
                continue;
            else
            {
                i++;
                numbers.add(aRandomNumber);
                builder.append(aRandomNumber); //Add number to string
    
                if( i < (count-1) )
                    builder.append(", "); // Add a comma if it's not the last number
            }
        }
    
        String output = builder.toString();
        builder.setLength(0); //A polite clearing
        numbers.clear();
    
        return output;
    }
    

提交回复
热议问题