Monday, January 11, 2021

How to Shuffle an Array in Java

How to Shuffle an Array in Java

Có hai cách để xáo trộn một mảng trong Java.

  • Collections.shuffle() Method
  • Random Class

1. Trộn các phần tử mảng bằng cách sử dụng Collections.shuffle()

Chúng ta có thể tạo một danh sách từ mảng và sau đó sử dụng phương thức shuffle () của lớp Collections để xáo trộn các phần tử của nó. Sau đó, chuyển đổi danh sách sang mảng ban đầu.

import java.util.Arrays;

import java.util.Collections;

import java.util.List;


public class ShuffleArray {


public static void main(String[] args) {


Integer[] intArray = { 1, 2, 3, 4, 5, 6, 7 };


List<Integer> intList = Arrays.asList(intArray);


Collections.shuffle(intList);


intList.toArray(intArray);


System.out.println(Arrays.toString(intArray));

}

}

Đầu ra: [1, 7, 5, 2, 3, 6, 4]

Lưu ý rằng Arrays.asList () chỉ hoạt động với một mảng đối tượng. Khái niệm hộp tự động không hoạt động với các số liệu chung. Vì vậy, bạn không thể sử dụng cách này để xáo trộn một mảng cho các nguyên thủy.

How to Shuffle an Array in Java

2. Trộn mảng bằng cách sử dụng lớp ngẫu nhiên

Chúng ta có thể lặp qua các phần tử mảng trong vòng lặp for. Sau đó, chúng tôi sử dụng lớp Random để tạo một số chỉ mục ngẫu nhiên. Sau đó hoán đổi phần tử chỉ mục hiện tại với phần tử chỉ mục được tạo ngẫu nhiên. Vào cuối vòng lặp for, chúng ta sẽ có một mảng được xáo trộn ngẫu nhiên.

import java.util.Arrays;

import java.util.Random;


public class ShuffleArray {


public static void main(String[] args) {

int[] array = { 1, 2, 3, 4, 5, 6, 7 };

Random rand = new Random();

for (int i = 0; i < array.length; i++) {

int randomIndexToSwap = rand.nextInt(array.length);

int temp = array[randomIndexToSwap];

array[randomIndexToSwap] = array[i];

array[i] = temp;

}

System.out.println(Arrays.toString(array));

}

}

Output: [2, 4, 5, 1, 7, 3, 6]

No comments:

Post a Comment