Java의 배열 순서 섞기

Siddharth Swami 2023년10월12일 Java Java Array
  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]

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

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다

관련 문장 - Java Array