0

DefaultListModelすべての要素を別の にコピーする以外に、 の項目をシャッフルする最も簡単な方法はあり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 に答える