从属列表的自动随机化
在处理多个相关的 ArrayList 时,能够以这样的方式随机化它们会很有用他们保持通信的一种方式。例如,在提供的案例中,filelist 和 imgList ArrayList 都有相应的元素,例如“H1.txt”和“e1.jpg”。
问题陈述
给定两个ArrayList,filelist和imgList,其中filelist中的每个元素对应imgList中的一个元素,我们如何自动随机化imgList中元素的顺序以匹配filelist的随机化?
解决方案
为了确保 imgList 的随机化反映 filelist 的随机化,我们需要为每个列表使用单独的 Random 对象,但使用相同的种子初始化它们。这保证了两个列表将以相同的方式进行洗牌。
<code class="java">long seed = System.nanoTime(); Collections.shuffle(fileList, new Random(seed)); Collections.shuffle(imgList, new Random(seed));</code>
说明
System.nanoTime() 方法提供了一个唯一的种子值,该种子值基于当前时间(以纳秒为单位)。通过使用这个值来初始化两个 Random 对象,我们确保它们生成相同的随机数序列。这意味着经过混洗过程后,filelist 和 imgList 中的元素顺序将相同。
通过利用这种方法,您可以在两个 ArrayList 之间实现所需的随机对应关系,其中 imgList 中的元素将遵循与文件列表中的元素相同的随机顺序。
以上是如何在保持对应性的同时随机化依赖的 ArrayList?的详细内容。更多信息请关注PHP中文网其他相关文章!