>  기사  >  Java  >  순서를 유지하면서 상호 연관된 요소가 포함된 두 개의 ArrayList를 무작위로 추출하려면 어떻게 해야 합니까?

순서를 유지하면서 상호 연관된 요소가 포함된 두 개의 ArrayList를 무작위로 추출하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-26 03:24:27872검색

How can you randomize two ArrayLists containing correlated elements while preserving their order?

콘텐츠에 상관된 여러 ArrayList를 무작위로 지정하면서 순서 유지

소개

이 질문은 두 개의 ArrayList에 다음이 포함되는 일반적인 시나리오를 다룹니다. 관련 요소가 있지만 한 목록을 무작위로 지정하면 다른 목록도 동일한 순서로 자동으로 무작위로 지정됩니다. 해결책을 이해하려면 문제를 자세히 조사하고 병렬 무작위화의 기본 개념을 탐색하는 것이 중요합니다.

문제 이해

두 개의 ArrayList, fileList 및 imgList가 주어지면, 관련 요소(예: 텍스트 파일 및 해당 이미지)를 나타내는 작업은 fileList를 무작위화하여 동일한 방식으로 imgList를 자동으로 무작위화하는 것입니다. 이렇게 하면 셔플 후에도 관련 요소가 쌍으로 유지됩니다.

해결책

다음 코드는 두 개의 Random 개체가 초기화된 Collections.shuffle() 메서드를 사용하는 효과적인 솔루션을 보여줍니다. 동일한 시드 사용:

<code class="java">long seed = System.nanoTime();
Collections.shuffle(fileList, new Random(seed));
Collections.shuffle(imgList, new Random(seed));</code>

설명

  • 공통 시드: 동일한 시드로 두 Random 객체를 모두 초기화하면 각 객체에 의해 생성된 의사 난수 시퀀스는 동일합니다. 이렇게 하면 두 목록이 정확히 동일한 순서로 섞이게 됩니다.
  • 별도의 컬렉션: 두 개의 Random 개체를 사용하면 ArrayList가 고유하게 유지되며 다른 목록에 영향을 주지 않고 독립적으로 조작할 수 있습니다.
  • 무작위화 트리거: fileList가 섞이고 나면 변경 사항이 imgList에서 후속 섞기를 트리거하여 관련 요소 간의 동기화된 순서를 유지합니다.

출력

제공된 샘플 입력의 경우 무작위 추출 후 출력은 다음과 같습니다.

  • fileList = {"M4.txt", "M6.txt", "H3. txt", "M5.txt", "H2.txt", "H1.txt"}
  • imgList = {"e4.jpg", "e6.jpg", "e3.jpg", "e5 .jpg", "e2.jpg", "e1.jpg"}

imgList의 요소 순서가 어떻게 fileList의 무작위 순서를 반영하여 관련 요소를 효과적으로 결합하는지 확인하세요.

위 내용은 순서를 유지하면서 상호 연관된 요소가 포함된 두 개의 ArrayList를 무작위로 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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