2015-01-11 7 views
1

그래서 "음악 라이브러리"를 만들고 있는데, 기본적으로 "노래"를 첫 번째 목록에 추가 한 다음 원하는 노래를 다른 목록으로 옮겨 재생 목록이됩니다. 재생 목록에서 나는 그것을 정렬하기위한 버튼이 이미 있기 때문에 그것을 무작위화할 수 있기를 원합니다.List를 사용하여 netbeans에서 배열을 임의 화하는 방법은 무엇입니까?

내가 사용하고 있다고 덧붙여 야합니다. DefaultListModel model1 = new DefaultListModel(); 코딩에서 . 미안하다. 자신을 설명하는 것이 좋지 않다면, 설명하는 법을 정말로 모른다. ///

+0

사용해보기 : http://stackoverflow.com/questions/1519736/random-shuffling-of-an-array – Malt

답변

2

list을 셔플해야 할 경우 Collections을 통해이를 수행하는 방법이있다.

Collections.shuffle(nameOfYourList); 

이렇게하면 목록이 무작위로 재 배열됩니다.

자세한 내용은 here을 참조하십시오.

+0

자바는 [선형 합동 생성기] (http://en.wikipedia.org/wiki/Linear_congruential_generator)를 사용합니다.) 수동으로 시드를 제공하면 초기 몇 가지 값에 대해 통계적으로 유의미한 (그리고 예측 가능한) 변경 사항을 도입 할 수 있습니다. –

+0

@ElliottFrisch 흥미 롭습니다. 댓글 주셔서 감사합니다. 나는 그것에 대해 몰랐다. –

-1

0과 총 노래 수 사이의 무작위 등급을 사용하여 무작위로 int를 만들고, 목록에서 해당 슬롯이 비어 있는지 확인한 다음 노래를 추가하십시오. 그렇지 않으면 그 과정을 반복하십시오. 이 모든 노래를 통해 가면 각 노래가 무작위로 지정됩니다. 예컨대 :

Random r = new Random(); 
for (Music m : unrandomList) { 
while (true) { 
int index = r.nextInt(list.size()); 
if (list.getElementAt(index) != null) { 
list.add(index,Music); 
break; 
} 
} 
1
ArrayList<Integer> array = new ArrayList<Integer>; 
array.add(1); 
array.add(2); 
array.add(3); 
array.add(4); 
array.add(5); 
int[] temp = array.size; 
for(int i = 0; i < array.size; i++){ 
    int r = (int) (Math.random()*array.length); 
    temp[r] = array.get(r); 
    array.remove(r); 
} 

당신은 간단한 ArrayList를 할 수 있습니다. Arraylist는 매우 쉽습니다.