Java의 배열 순서 섞기

Siddharth Swami 2023년10월12일
  1. random() 메소드를 사용하여 Java에서 배열 섞기
  2. shuffle() 메서드를 사용하여 Java에서 배열 섞기
Java의 배열 순서 섞기

배열은 Java의 기본 데이터 구조 중 하나입니다. Java에는 배열을 처리하고 작업하는 많은 기능과 메서드가 있습니다.

이 튜토리얼은 Java에서 배열을 섞는 방법을 보여줍니다.

random() 메소드를 사용하여 Java에서 배열 섞기

Fisher-Yates 셔플 배열 방법을 사용하여 주어진 배열을 무작위로 섞을 수 있습니다. 이 방법은 주어진 배열의 마지막 요소에서 시작하여 배열에서 무작위로 선택된 요소로 계속 교체하는 것을 목표로 합니다.

무작위 클래스의 Random() 함수를 사용하여 배열의 인덱스를 무작위로 선택합니다. java.util 라이브러리에서 RandomArrays라는 두 개의 클래스를 가져올 것입니다.

예를 들어,

import java.util.Arrays;
import java.util.Random;
public class ShuffleExample {
  static void rand(int array[], int a) {
    // Creating object for Random class
    Random rd = new Random();

    // Starting from the last element and swapping one by one.
    for (int i = a - 1; i > 0; i--) {
      // Pick a random index from 0 to i
      int j = rd.nextInt(i + 1);

      // Swap array[i] with the element at random index
      int temp = array[i];
      array[i] = array[j];
      array[j] = temp;
    }
    // Printing the random generated array
    System.out.println(Arrays.toString(array));
  }

  public static void main(String[] args) {
    int[] ar = {1, 2, 3, 4, 5, 6, 7, 8};
    int b = ar.length;
    rand(ar, b);
  }
}

출력:

[5, 4, 6, 2, 8, 1, 7, 3]

shuffle() 메서드를 사용하여 Java에서 배열 섞기

Collection 클래스의 shuffle() 함수는 사용자가 제공한 목록을 가져와 무작위로 섞습니다. 이 기능은 사용하기 쉽고 이전 방법보다 시간이 덜 걸립니다. 또한 코드 라인을 줄여줍니다.

배열을 가져와 먼저 목록으로 변환합니다. 그런 다음 shuffle() 함수를 사용하여 이 목록을 섞습니다. 마지막으로 이 목록을 다시 배열로 변경하고 인쇄합니다.

아래 코드를 참조하십시오.

import java.util.*;
public class ShuffleExample2 {
  public static void main(String[] args) {
    Integer[] array = {1, 3, 5, 7, 9};
    List<Integer> list = Arrays.asList(array);

    Collections.shuffle(list);
    list.toArray(array);
    System.out.println(Arrays.toString(array));
  }
}

출력:

[7, 9, 3, 1, 5]

위의 배열에서 셔플된 배열을 볼 수 있습니다. 매번 새로운 셔플 배열을 반환합니다.

관련 문장 - Java Array