>  기사  >  Java  >  순서 일관성을 유지하면서 여러 ArrayList를 무작위로 만드는 방법은 무엇입니까?

순서 일관성을 유지하면서 여러 ArrayList를 무작위로 만드는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-27 07:12:02528검색

How to Randomize Multiple ArrayLists While Maintaining Ordering Consistency?

무작위화 중 여러 ArrayList의 순서 유지

단일 ArrayList를 무작위로 무작위화하는 것은 간단한 작업이지만 다음과 관련된 여러 ArrayList가 있을 때 문제가 발생합니다. 서로 일관된 방식으로 무작위로 추출되어야 합니다. 이를 달성하기 위해 Collections.shuffle()의 기능과 공유된 임의 시드를 활용할 수 있습니다.

다음 코드 조각은 원하는 결과를 얻는 방법을 보여줍니다.

<code class="java">import java.util.ArrayList;
import java.util.Collections;

public class ArrayListRandomization {

    public static void main(String[] args) {
        // Initialize the ArrayLists
        String[] file = {"H1.txt", "H2.txt", "H3.txt", "M4.txt", "M5.txt", "M6.txt"};
        ArrayList<String> fileList = new ArrayList<>(Arrays.asList(file));

        String[] img = {"e1.jpg", "e2.jpg", "e3.jpg", "e4.jpg", "e5.jpg", "e6.jpg"};
        ArrayList<String> imgList = new ArrayList<>(Arrays.asList(img));

        // Generate a shared random seed
        long seed = System.nanoTime();

        // Randomize the file list
        Collections.shuffle(fileList, new Random(seed));

        // Randomize the image list using the same seed
        Collections.shuffle(imgList, new Random(seed));

        // Print the randomized ArrayLists
        System.out.println("Randomized fileList:");
        for (String s : fileList) {
            System.out.println(s);
        }

        System.out.println("Randomized imgList:");
        for (String s : imgList) {
            System.out.println(s);
        }
    }
}</code>

여기서 코드:

  • System.nanoTime()을 사용하여 공유 무작위 시드를 얻습니다.
  • 공유 시드와 함께 Collections.shuffle()을 사용하여 fileList를 무작위화합니다.
  • 동일한 시드를 사용하여 imgList에 대해 무작위화 프로세스를 반복합니다.

공유된 무작위 시드를 사용하면 두 ArrayList가 동일한 방식으로 무작위화되어 해당 요소 간의 관계가 유지됩니다. .

위 내용은 순서 일관성을 유지하면서 여러 ArrayList를 무작위로 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.