我不確定爲什麼我的removeDuplicates方法拒絕實際擺脫非唯一值。我不確定問題是否與尺寸增量或我的方法調用有關。刪除陣列中的冗餘值
// post: places the value in the correct place based on ascending order
public void add(int value) {
size++;
if (size == 1) {
elementData[0] = value;
} else {
int position = Arrays.binarySearch(elementData, 0, size - 1, value);
if (position < 0) {
position = (-position) - 1;
}
for (int i = size - 1; i > position; i--) {
elementData[i] = elementData[i - 1];
}
elementData[position] = value;
}
if (unique) {
removeDuplicates();
}
}
//post: removes any duplicate values from the list
private void removeDuplicates() {
for(int i = size - 1; i > 0; i--) {
if (elementData[i] == elementData[i - 1]){
remove(i - 1);
}
}
}
刪除(I - 1);這是一種方法嗎? –
???「elementData」的類型是什麼?如果它是一個對象,則不能使用「==」。 – paulsm4
elementData是一個整數的數組。 remove是一種接受索引的方法,刪除該索引處的值並滑動剩下的右側空間上的所有值。 – user98643