我有一个数组,我正在用它实现一个优先级队列。现在,我不会移动元素(因为只有前指针必须移动)。
我尝试通过向该数组位置添加null但由于我使用了Arrays.sort(arr)
方法而无效,如果我确实将位置设为null,则会产生NullPointerException。
以下是我的代码的外观:
public static void remove() {
//Priorityy x = arr[front];
arr[front] = null;
front--;
//return x;
}
public int compareTo(Priorityy pe) {
if (this == null || pe == null)
return 0;
else {
if (this.key < pe.key) {
return 1;
} else if (this.key > pe.key) {
return -1;
} else {
return 0;
}
}
}
我哪里出错了?
答案 0 :(得分:0)
使用Arrays.copyOfRange
获取没有第一个元素(前面)的数组,如下所示:
arr = Arrays.copyOfRange(1, arr.length);