Rumah  >  Artikel  >  Java  >  Bagaimanakah anda boleh merawak dua ArrayLists yang mengandungi elemen berkorelasi sambil mengekalkan susunannya?

Bagaimanakah anda boleh merawak dua ArrayLists yang mengandungi elemen berkorelasi sambil mengekalkan susunannya?

Susan Sarandon
Susan Sarandonasal
2024-10-26 03:24:27872semak imbas

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

Memelihara Susunan Semasa Merawak Berbilang ArrayList Berkaitan dalam Kandungan

Pengenalan

Soalan ini menangani senario biasa di mana dua ArrayLists mengandungi elemen berkaitan, tetapi rawak satu senarai harus secara automatik rawak yang lain dalam susunan yang sama. Untuk memahami penyelesaian, adalah penting untuk menyelidiki masalah dan meneroka konsep asas rawak selari.

Memahami Masalah

Memandangkan dua ArrayList, fileList dan imgList, mewakili elemen yang berkaitan (cth. fail teks dan imej yang sepadan), tugasnya adalah untuk rawak FileList, dengan itu secara automatik rawak imgList dalam cara yang sama. Ini memastikan elemen berkaitan kekal berpasangan walaupun selepas dikocok.

Penyelesaian

Kod berikut mempamerkan penyelesaian berkesan menggunakan kaedah Collections.shuffle() dengan dua objek Rawak dimulakan dengan biji yang sama:

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

Penjelasan

  • Biji Biasa: Memulakan kedua-dua objek Rawak dengan biji yang sama memastikan bahawa jujukan pseudorandom yang dihasilkan oleh setiap objek adalah sama. Ini memastikan kedua-dua senarai dikocok dalam susunan yang sama.
  • Koleksi Asingkan: Dengan menggunakan dua objek Rawak, ArrayLists kekal berbeza dan boleh dimanipulasi secara bebas tanpa menjejaskan yang lain.
  • Pencetus Rawak: Setelah FileList dikocok, perubahan mencetuskan shuffle seterusnya dalam imgList, mengekalkan susunan yang disegerakkan antara elemen yang berkaitan.

Output

Untuk input sampel yang disediakan, output selepas rawak adalah seperti berikut:

  • 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"}

Perhatikan bagaimana susunan elemen dalam imgList mencerminkan susunan rawak FileList, menggandingkan elemen yang berkaitan dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah anda boleh merawak dua ArrayLists yang mengandungi elemen berkorelasi sambil mengekalkan susunannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn