リストのランダムソート
ArrayListをランダムに並び替えるメソッドを探しているうちに(確かあったはず)
今まで思いつかなかった単純な方法でランダムソートできる方法に気がついた
ArrayListインスタンスをもいっこつくって,そっちにランダムな順番で要素を移動させていくイメージ
コストはこの際目をつむる,人間の理解しやすさで勝負です.
ただ,やっぱりArrayList.get()メソッドが好きになれない.
キャストせんとあかんし,あんまオブジェクト指向っぽくないし.
そろそろJava5.0勉強しないといけんね
public void shuffle(){ List tmpList = new ArrayList(); while(this.cardList.size() > 0){ // 既存のリスト要素からランダムに選択された要素を新しいリストにコピーしてその要素を既存リストから除去 int choice = (int)(Math.random() * this.cardList.size()); tmpList.add((Card)this.cardList.get(choice)); this.cardList.remove(choice); } // 新しいリストへの参照をコピー this.cardList = tmpList; }