したがって、30個の確率値を持つ配列をdoubleとして持っています。私は私が新しいアレイ 配列の中で最も高いdouble値を持つ要素のインデックスを配列します。
- 最初のチェックに
前にチェックされた要素を除外して最初のステップを繰り返したいです検査された要素をnullに置き換えて、nullを除くすべての要素を検査して手順1を繰り返すことによって、それを実行しようとしています。しかし、これは私にヌルポインタ例外を与えます。私はArrayのDoubleオブジェクトを作成していますが。
Double[] P_array= {0.23, 0.45, 0.1, 0.65, 0.67};
int maxIndex = 0;
int[] index_sorting = new int[P_array.length];
int sort_index = 0;
for (int i = 1; i < P_array.length; i++){
if (P_array[i] != (null)){ //getting NPE exception here
if ((P_array[i] > P_array[maxIndex])){
maxIndex = i;
System.out.print(new DecimalFormat("#0.00").format(P_array[i]));
System.out.print(",");
P_array[maxIndex]= null; //also getting NPE exception here
index_sorting[sort_index] = maxIndex;
sort_index++;
}
}
}
要素をnullに置き換える以外にも、このタスクを達成する方法はありますか?
れていますか? – Reek
したがって、インデックスの配列を持ち、この配列を、一致するdouble値の降順で並べ替えるのがいいでしょうか?だから[1.0,2.0,0.0]は[1、0、2]を与えるだろうか? –
@reek updated answer ... –