Rumah  >  Artikel  >  Java  >  Bagaimana untuk Rawak Senarai Array Bergantung Semasa Mengekalkan Surat-menyurat?

Bagaimana untuk Rawak Senarai Array Bergantung Semasa Mengekalkan Surat-menyurat?

DDD
DDDasal
2024-10-27 11:14:30783semak imbas

How to Randomize Dependent ArrayLists While Maintaining Correspondence?

Mengautomasikan Rawak Senarai Bergantung

Apabila berurusan dengan berbilang ArrayList yang berkaitan, adalah berguna untuk dapat mengacakkannya dalam cara mereka mengekalkan surat-menyurat mereka. Contohnya, dalam kes yang disediakan, senarai fail dan imgList ArrayLists mempunyai elemen yang sepadan, seperti "H1.txt" dan "e1.jpg".

Pernyataan Masalah

Memandangkan dua ArrayList, senarai fail dan imgList, di mana setiap elemen dalam senarai fail sepadan dengan elemen dalam imgList, bagaimanakah kita boleh secara automatik rawak susunan unsur dalam imgList untuk memadankan rawak senarai fail?

Penyelesaian

Untuk memastikan bahawa rawak imgList mencerminkan rawak senarai fail, kita perlu menggunakan objek Rawak berasingan untuk setiap senarai tetapi memulakannya dengan benih yang sama. Ini menjamin bahawa kedua-dua senarai akan dikocok dengan cara yang sama.

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

Penjelasan

Kaedah System.nanoTime() menyediakan nilai benih unik yang berasaskan pada masa semasa dalam nanosaat. Dengan menggunakan nilai ini untuk memulakan kedua-dua objek Rawak, kami memastikan ia menghasilkan jujukan nombor rawak yang sama. Ini bermakna susunan elemen dalam kedua-dua senarai fail dan imgList akan menjadi sama selepas proses shuffling.

Dengan menggunakan pendekatan ini, anda boleh mencapai surat-menyurat rawak yang diingini antara kedua-dua ArrayList, di mana unsur-unsur dalam imgList akan mengikuti susunan rawak yang sama seperti elemen dalam senarai fail.

Atas ialah kandungan terperinci Bagaimana untuk Rawak Senarai Array Bergantung Semasa Mengekalkan Surat-menyurat?. 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