Java의 배열 순서 섞기
Siddharth Swami
2023년10월12일
배열은 Java의 기본 데이터 구조 중 하나입니다. Java에는 배열을 처리하고 작업하는 많은 기능과 메서드가 있습니다.
이 튜토리얼은 Java에서 배열을 섞는 방법을 보여줍니다.
random()
메소드를 사용하여 Java에서 배열 섞기
Fisher-Yates 셔플 배열 방법을 사용하여 주어진 배열을 무작위로 섞을 수 있습니다. 이 방법은 주어진 배열의 마지막 요소에서 시작하여 배열에서 무작위로 선택된 요소로 계속 교체하는 것을 목표로 합니다.
무작위 클래스의 Random()
함수를 사용하여 배열의 인덱스를 무작위로 선택합니다. java.util
라이브러리에서 Random
및 Arrays
라는 두 개의 클래스를 가져올 것입니다.
예를 들어,
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]
위의 배열에서 셔플된 배열을 볼 수 있습니다. 매번 새로운 셔플 배열을 반환합니다.