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!