2013-06-12 4 views
0

은 별도의 arraylist의 모든 요소를 ​​복사하는 것보다 DefaultListModel 다른 항목을 셔플하는 가장 빠른 방법은, 내가 아래의 코드를 사용하고 있는가, 그러나 그것은 나에게 java.lang.ClassCastException를 제공합니다셔플 DefaultListModel

.... 
private DefaultListModel<String> listModel = new DefaultListModel<String>(); 
... 
Collections.shuffle((List<?>) listModel, new java.util.Random(seed)); 
... 

하나를 제안

이 같은 지표 완전히 확실하지
+0

어떻게 Y을 처음에는 'DefaultListModel'에 항목을 가져 옵니까? – MadProgrammer

+0

addElement() function – Adil

+0

아마도 목록 모델에 요소를 추가하기위한 루프가 있습니까? – MadProgrammer

답변

0

하지만 뭔가 :

private DefaultListModel<String> listModel = new DefaultListModel<String>(); 
... 
static void shuffle(DefaultListModel<String> mdl){ 
    for(int i=0;i<mdl.size();i++){ 
     int swapWith = (int)(Math.random()*(mdl.size()-i))+i; 
     if(swapWith==i) continue; 
     mdl.add(i, mdl.remove(swapWith)); 
     mdl.add(swapWith, mdl.remove(i+1)); 
    } 
}