Итак, у меня есть массив с 30 значениями вероятности как двойной. Я хочуУпорядочить индекс элементов с наивысшим двойным значением в массиве
- первой проверки для верхнего элемента в массиве
- магазин индекс в новом массиве
- повторите первый шаг за исключением элемента, который был проверен перед тем
Я пытаясь сделать это, заменив проверенный элемент на null и повторив шаг 1, проверив все элементы, кроме null. Но это дает мне исключение Null pointer. Хотя я создаю двойной объект Array.
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++;
}
}
}
Есть ли лучший способ достижения задачи, кроме замены элемента нулем?
на какой линии вы получаете исключение? – Reek
Итак, вы хотите иметь массив индексов и отсортировать этот массив по убыванию совпадающих двойных значений, так? Итак, [1.0, 2.0, 0.0] дадут [1, 0, 2]? –
@reek обновленный ответ ... –