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

我有两个arraylist filelist并且imgList彼此相关,例如,与“ e1.jpg”相关的“ H1.txt”。如何imgList根据的随机化自动对列表进行随机化fileList?像在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具有相同种子的两个对象可确保两个列表将以完全相同的方式进行混洗。这允许两个单独的集合。

以上是 如何以相同的方式随机化两个ArrayList? 的全部内容, 来源链接: utcz.com/qa/406322.html

回到顶部