gpt4 book ai didi

java - 如何以相同的方式随机化两个 ArrayList?

转载 作者:bug小助手 更新时间:2023-10-28 10:39:50 25 4
gpt4 key购买 nike

我有两个相互关联的数组列表 filelistimgList,例如与“e1.jpg”相关的“H1.txt”。如何根据fileList的随机化自动随机化imgList的列表?就像在excel中一样,如果我们对某一列进行排序,另一列会自动跟随吗?

String [] file = {"H1.txt","H2.txt","H3.txt","M4.txt","M5.txt","M6.txt"};
ArrayList<String> fileList = new ArrayList<String>(Arrays.asList(file));

String [] img = {"e1.jpg","e2.jpg","e3.jpg","e4.jpg","e5.jpg","e6.jpg"};
ArrayList<String> imgList = new ArrayList<String>(Arrays.asList(img));

//randomized files
Collections.shuffle(fileList);

随机化后的输出例如:

fileList = {"M4.txt","M6.txt","H3.txt","M5.txt","H2.txt","H1.txt"};

预期输出:

 imgList = {"e4.jpg","e6.jpg","e3.jpg","e5.jpg","e2.jpg","e1.jpg"};

最佳答案

使用 Collections.shuffle()两次,用相同的种子初始化两个 Random 对象:

long seed = System.nanoTime();
Collections.shuffle(fileList, new Random(seed));
Collections.shuffle(imgList, new Random(seed));

使用具有相同种子的两个 Random 对象可确保两个列表将以完全相同的方式进行混洗。这允许两个单独的集合。

关于java - 如何以相同的方式随机化两个 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4228975/

25 4 0