0

DefaultListModel除了复制单独的所有元素之外,有没有最快的方法来洗牌 a 的项目arraylist,我正在使用下面的代码,但它给了我一个java.lang.ClassCastException

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

任何建议

4

1 回答 1

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));
    }
}
于 2013-06-12T12:09:16.133 回答