ArrayList의 순서를 랜덤하게 할수 있을까요?


filelist와 imgList라는 ArrayList가 두개 있는데요. 이게 각각 "H1.txt"면 "e1.jpg"와 연관돼있어요. imgList의 순서를 자동으로 바꿀때 fileList도 그거에 맞춰서 순서를 바꿔주고싶어요. 예를 들어서 엑셀에서 행으로 정렬할때 그 행에 있는 모든 열들이 같이 정렬되는것처럼요.

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"};

이런 결과가 나왔으면 좋겠어요.

  • 2016년 02월 04일에 작성됨

조회수 360


1 답변


좋아요
0
싫어요
채택취소하기
long seed = System.nanoTime();
Collections.shuffle(fileList, new Random(seed));
Collections.shuffle(imgList, new Random(seed));

이렇게 하시면 됩니다. Collection.shuffle을 쓰는데 Random에 똑같은 시드를 넣어주시면 됩니다.

  • 2016년 02월 04일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close