是否有最快的方法来洗牌DefaultListModel
的项目,而不是复制单独的arraylist
中的所有元素,我使用下面的代码,但它给了我一个java.lang.ClassCastException
:
....
private DefaultListModel<String> listModel = new DefaultListModel<String>();
...
Collections.shuffle((List<?>) listModel, new java.util.Random(seed));
...
任何建议
不完全确定索引但是像这样:
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));
}
}