如何在保持对应关系的同时打乱两个相关的 ArrayList?
随机化 ArrayList 时保留关系
使用两个相关的 ArrayList 时,在随机化后维护其元素之间的关系至关重要。当一个 ArrayList 的顺序影响另一个 ArrayList 时,这一点变得尤为重要。
考虑问题中描述的场景,其中我们有两个 ArrayList:fileList 和 imgList,每个都包含相应的文件名和图像名称。让我们看看如何随机化 fileList,同时确保 imgList 遵循相同的随机化模式。
挑战
挑战在于确保元素的顺序imgList 与 fileList 的打乱顺序对齐。 Collections.shuffle() 常用于随机化,但它会生成新的随机排列的元素,从而很难保留原始关系。
解决方案:同步洗牌
为了解决这个问题,我们可以使用 Collections.shuffle() 两次,每次都使用使用相同种子初始化的 Random 对象。种子值保证两个 Random 对象产生相同的随机数序列。
<code class="java">long seed = System.nanoTime(); Collections.shuffle(fileList, new Random(seed)); Collections.shuffle(imgList, new Random(seed));</code>
通过对两个 Random 对象使用相同的种子,我们确保 fileList 和 imgList 以相同的顺序进行混洗。这维护了相应元素之间的关系,使它们可以一起使用而不会出现任何差异。
示例输出
应用解决方案后,生成的 fileList 可能如下所示this:
fileList = {"M4.txt", "M6.txt", "H3.txt", "M5.txt", "H2.txt", "H1.txt"}
因此,imgList 将自动随机化以匹配 fileList 的新顺序:
imgList = {"e4.jpg", "e6.jpg", "e3.jpg", "e5.jpg", "e2.jpg", "e1.jpg".}
这确保“e1.jpg”图像仍然对应于“H1” .txt”等,尽管是随机化的,但仍可以轻松地协调使用两个 ArrayList。
以上是如何在保持对应关系的同时打乱两个相关的 ArrayList?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

2025年的前4个JavaScript框架:React,Angular,Vue,Svelte

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?

Spring Boot Snakeyaml 2.0 CVE-2022-1471问题已修复

如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?

如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?
