首頁  >  文章  >  Java  >  如何在保持對應關係的同時打亂兩個相關的 ArrayList?

如何在保持對應關係的同時打亂兩個相關的 ArrayList?

Barbara Streisand
Barbara Streisand原創
2024-10-29 03:13:02394瀏覽

How to Shuffle Two Related ArrayLists While Maintaining Their Correspondence?

隨機化ArrayList 時保留關係

使用兩個相關的ArrayList 時,在隨機化後維護其元素之間的關係至關重要。當一個 ArrayList 的順序影響另一個 ArrayList 時,這一點變得特別重要。

考慮問題中描述的場景,其中我們有兩個 ArrayList:fileList 和 imgList,每個都包含對應的檔案名稱和圖片名稱。讓我們看看如何隨機化 fileList,同時確保 imgList 遵循相同的隨機化模式。

挑戰

挑戰在於確保元素的順序imgList 與 fileList 的打亂順序對齊。 Collections.shuffle() 常用於隨機化,但它會產生新的隨機排列的元素,因此很難保留原始關係。

解決方案:同步洗牌

為了解決這個問題,我們可以使用Collections.shuffle() 兩次,每次都使用使用相同種子初始化的Random對象。種子值保證兩個 Random 物件產生相同的隨機數序列。

透過對兩個 Random 物件使用相同的種子,我們確保 fileList 和 imgList 以相同的順序進行混洗。這維護了相應元素之間的關係,使它們可以一起使用而不會出現任何差異。

範例輸出

應用解決方案後,產生的fileList 可能如下所示this:

因此,imgList 會自動隨機化以匹配fileList 的新順序:

這確保“e1.jpg”圖像仍然對應於“H1” .txt”等,儘管是隨機化的,但仍可以輕鬆地協調使用兩個ArrayList。

以上是如何在保持對應關係的同時打亂兩個相關的 ArrayList?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn