-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
SOStack Overflow相关问答Stack Overflow相关问答
Description
如何对两个列表进行乱序处理,同时保持它们的一一对应的关系?
已知我们有两个列表
public class RandomizeTwoList {
public static String [] file = {"H1.txt","H2.txt","H3.txt","M4.txt","M5.txt","M6.txt"};
public static ArrayList<String> fileList = new ArrayList<String>(Arrays.asList(file));
public static String [] img = {"e1.jpg","e2.jpg","e3.jpg","e4.jpg","e5.jpg","e6.jpg"};
public static ArrayList<String> imgList = new ArrayList<String>(Arrays.asList(img));
}其中fileList和imgList中的元素是一一对应的。
现在我们希望对两个列表进行随机排序,要求排序后它们依旧是一一对应的。
提示: java.util.Collections可以使得一个列表乱序,但是下面的写法是不可以的:
import java.util.Collections;
public class RandomizeTwoListTest {
@Test
public void wrongRandomize(){
Collections.shuffle(fileList);
Collections.shuffle(imgList);
System.out.println(fileList);
System.out.println(imgList);
// [H3.txt, M5.txt, H2.txt, H1.txt, M6.txt, M4.txt]
// [e6.jpg, e3.jpg, e4.jpg, e1.jpg, e2.jpg, e5.jpg]
}
}我们可以看到java.util.Collections确实可以使得一个列表乱序,但是上面两次乱序后列表之间失去了一一对应的关系,所以是不行的。
Metadata
Metadata
Assignees
Labels
SOStack Overflow相关问答Stack Overflow相关问答