Rumah  >  Artikel  >  Java  >  Bagaimana untuk Kocok Dua ArrayList Berkaitan Semasa Mengekalkan Surat-menyuratnya?

Bagaimana untuk Kocok Dua ArrayList Berkaitan Semasa Mengekalkan Surat-menyuratnya?

Barbara Streisand
Barbara Streisandasal
2024-10-29 03:13:02394semak imbas

How to Shuffle Two Related ArrayLists While Maintaining Their Correspondence?

Memelihara Perhubungan Semasa Merawak ArrayLists

Apabila bekerja dengan dua ArrayLists yang berkaitan, adalah penting untuk mengekalkan hubungan antara elemen mereka selepas rawak. Ini menjadi sangat penting apabila satu susunan ArrayList mempengaruhi yang lain.

Pertimbangkan senario yang diterangkan dalam soalan, di mana kita mempunyai dua ArrayList: fileList dan imgList, setiap satu mengandungi nama fail dan nama imej yang sepadan. Mari ketahui cara kita boleh rawak fileList sambil memastikan imgList mengikut corak rawak yang sama.

Cabaran

Cabarannya terletak pada memastikan susunan elemen dalam imgList sejajar dengan susunan fileList yang dikocok. Collections.shuffle() biasanya digunakan untuk rawak, tetapi ia menghasilkan susunan unsur rawak baharu, menjadikannya sukar untuk mengekalkan perhubungan asal.

Penyelesaian: Pengocokan Tersegerak

Untuk menyelesaikan masalah ini, kita boleh menggunakan Collections.shuffle() dua kali, setiap kali dengan objek Rawak yang dimulakan dengan benih yang sama. Nilai benih menjamin bahawa kedua-dua objek Rawak menghasilkan jujukan nombor rawak yang sama.

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

Dengan menggunakan benih yang sama untuk kedua-dua objek Rawak, kami memastikan bahawa fileList dan imgList dikocok dalam susunan yang sama. Ini mengekalkan hubungan antara elemen yang sepadan, membolehkan ia digunakan bersama tanpa sebarang percanggahan.

Contoh Output

Selepas menggunakan penyelesaian, senarai fail yang terhasil mungkin kelihatan seperti ini:

fileList = {"M4.txt", "M6.txt", "H3.txt", "M5.txt", "H2.txt", "H1.txt"}

Oleh itu, imgList akan secara rawak secara automatik untuk memadankan susunan baharu fileList:

imgList = {"e4.jpg", "e6.jpg", "e3.jpg", "e5.jpg", "e2.jpg", "e1.jpg".}

Ini memastikan bahawa imej "e1.jpg" masih sepadan dengan "H1 .txt" dan seterusnya, menjadikannya mudah untuk bekerja dengan kedua-dua ArrayLists secara harmoni walaupun dilakukan secara rawak.

Atas ialah kandungan terperinci Bagaimana untuk Kocok Dua ArrayList Berkaitan Semasa Mengekalkan Surat-menyuratnya?. 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