2012-01-20 4 views
1

次の構造のテーブルがあります。学生です。 enter image description hereJavaまたはAndroidのデータベーステーブルを使用して、反復的なデータを持つテーブルIDを取得する

はここで、私は彼らの受容データとの最初の列IDによると、これらのデータをシャッフルします。私はこのコードを試しています

public void shuffleStudent(int[] ar) { 

    Random rnd = new Random(); 
    for (int i = ar.length - 1; i >= 0; i--) { 
     int index = rnd.nextInt(i + 1); 
     // Simple swap 
     int a = ar[index]; 
     ar[index] = ar[i]; 
     ar[i] = a; 
    } 
} 

この

int [] t= db.shuffleJokes(cur.getString(cur.getColumnIndex("id"))); 

または

Cursor cur = db.shuffleJokes(cur.getString(cur.getColumnIndex("id"))); 

しかし、これら二つは機能しませんでしたから取得します。このタイプの問題

The method shuffleJokes(int[]) in the type DatabaseHelper is not applicable for the arguments (String) 

私の質問は私のsuffleStudent機能が正しいかどうかです。だからどのようにsuffleStudent.javaに入る。前もって感謝します。

答えて

0

あなたのシャッフル関数はうまく見えますが、関数がintの配列を期待しているときに文字列を送信することは意味がありません。私はcurがデータベースカーソルだと思います。データベース全体を配列に読み込み、この配列をシャッフル関数に渡す必要があります。

データベーステーブルに新しい列を追加し、レコードごとにこの列に乱数を入れ、この列で選択順序を入れます。これはあなたのコードではなく、データベース内のシャッフルを行いますが、これはおそらくより速いでしょう。 (あなたはおそらくインデックスが必要です)

関連する問題