我的数字如:1,7,1,5我希望对它们进行排序,它们之间没有间隙(即)1,7,1,5被分类为1,1,2,3。 (5变成2; 7变成3)。
我的代码看起来像这样(工作正常),但在某些情况下会返回空指针ex,或类似的东西:/
public void shake(Car[] c){
for(int i = 1; i < MaxPriority; i++)
if(!isCarWithPriority(i, c))
for(int j = i; j < 10; j++)
if(isCarWithPriority(j, c))
for(int k = 0; k < getCarsWithPriority(j, c).length; k++)
getCarsWithPriority(j, c)[k].setPriority(i);
}
你能帮助我吗?
答案 0 :(得分:0)
您可以在排序后尝试迭代这些数字。如果结果为0,则从第2个减去第1个然后不做任何其他事先用第1个替换第2个+ 1然后以相同的方式比较第3个和第2个。继续直到最后一个数字。你会得到所需的输出。这可以通过java中的单个循环来实现。
答案 1 :(得分:0)
这样就可以了解
public static void main(String[] a) {
Integer [] arr = {1,7,1,5};
Arrays.sort(arr);
for (Integer integer : arr) {
System.out.println(integer);
}
for(int i=0; i< arr.length-1 ;i++){
if(arr[i+1]-arr[i] ==0){
continue;
}else{
arr[i+1] =arr[i]+1;
}
}
System.out.println("--------------------");
for (Integer integer : arr) {
System.out.println(integer);
}
}