まず、ソートアルゴリズムをAndroidで視覚化するプログラムを作成しています。 挿入ソートアルゴリズムのメソッドを書きました。私はそれのためにMPAndroidChartを使用しています。ArrayListを使用したandroid java insertsort
void insertionSort(int[] arr) {
int i, j, newValue;
for (i = 1; i < arr.length; i++) {
newValue = arr[i];
j = i;
while (j > 0 && arr[j - 1] > newValue) {
arr[j] = arr[j - 1];
j--;
}
arr[j] = newValue;
}
}
...うまく動作します。 ArrayListを使用して同じ結果を得るために再設計したいのですが、残念ながらクラッシュしてしまいます。理由はわかりません。これはコレクションアプローチです.Sort:
void insertionSort(ArrayList<BarEntry> list) {
int i, j;
float newValue;
for (i = 1; i < list.size(); i++) {
newValue = list.get(i).getY();
j = i;
while (j > 0 && list.get(j-1).getY() > newValue) {
list.set(j, list.get(j-1));
j--;
}
BarEntry be = list.get(list.indexOf(newValue));
list.set(j, be);
}
}
BarEntryはチャートを作成するためのクラスです。データをY座標でソートしたいのですが、getY()関数で行うことです。プログラムはそこでシャットダウンします:
BarEntry be = list.get(list.indexOf(newValue)); list.set(j、be);一言で言えば
: どのように私は
ARR [J] = newValueに置き換えることができ、このようなコレクションのアプローチ(動作しない)に
:
list.set(J、list.get(list.indexOf(newValueに))); Javaのドキュメントから
例外メッセージが表示されますか?スタックトレース? –
いいえ、私のアプリは単に私のメソッドを呼び出すボタンをクリックすると再起動しています。 – d3st1ny