>

다음 Groovy 를 사용합니다  목록에서 임의의 요소를 선택하는 코드입니다.

Random rnd = new Random()
log.info("Random element:" + list[rnd.nextInt(list.size)])

대부분의 경우 이전 또는 다음 요소를 "임의"값으로받습니다.

  • 답변 # 1

    씨앗의 예

    과거에, 난수를 생성 할 때, 그것들은 '랜덤'이 아니기 때문에 좀 더 랜덤하게하기 위해 몇 가지 다른 방법을 시도했습니다.

    예 :

    Date date = new Date();
    def now = date.getTime();
    log.info(now);  // This value is the number of millis since January 1, 1970
    Random rnd = new Random();
    rnd.setSeed(now); // Seed the Random with the millis value
    def play = randomValue.nextInt(10);  // Value in brackets is the max number of interest
    log.info(play);
    
    

    범위에서 일하지 않고 x 자리 임의의 값이 필요할 때, 나는 다음과 같은 일을 해냈다 ...

    randomValue = new Random();
    val1 = randomValue.nextInt(10);
    val2 = randomValue.nextInt(10);
    val3 = randomValue.nextInt(10);
    val4 = randomValue.nextInt(10);
    val5 = randomValue.nextInt(10);
    orderRef = val1.toString() + val2.toString() + val3.toString()+ val4.toString()+ val5.toString();
    
    

  • 답변 # 2

    이것을 시도하십시오

    def <T> T getRandomElement(List<T> list) {
        if (list) {
            Collections.shuffle(list)
            list.first()
        }
    }
    
    

    와이즈 비즈  목록을 변경합니다. 다른 곳에서 목록에 대한 참조가있는 경우 문제가 될 수 있습니다.

    Collections.shuffle

  • 이전 java - 어떤 인터페이스 구현이 사용되고 있는지 어떻게 알 수 있습니까?
  • 다음 java - Akka-HTTP 템플릿을 찾을 수 없습니다