我只想知道当你覆盖删除某个元素的元素时,你改变了它之后所有元素的位置。问题是当你改变位置时,最后一个元素中的最后一个元素将与倒数第二个相同。在这段代码中,我将最后一个元素更改为我不想要的空。我只想将其删除,以便将其保存在 csv 中。如果我写 null ,那么它将 csv 中的“null”保存为我不想要的记录!请帮忙!
public static void deleteEntry() {
int flag = -1;
Boolean found = false;
System.out.println("Please provide the name of the contact to delete its entry: ");
String searchName2 = sc.next().toUpperCase();
System.out.println(counter);
try {
for (int i = 0; i < counter; i++) {
if (names[i].compareTo(searchName2) == 0) {
flag = i;
found = true;
}
}
} catch (Exception e) {
}
if (flag == -1) {
System.out.println("Contact Name NOT Found");
} else { //record was found, flag is a positive index position
//if the record is the last record, simply remove it and decrement the counter
if (flag == counter - 1) {
System.out.println("Contact Deleted!");
names[flag] = null;
numbers[flag] = null;
counter--;
}else {
//record is not the last record, shift all later records down
for (int i = flag; i < counter-1; i++){
names[i] = names[i + 1];
numbers[i] = numbers[i + 1];
}
System.out.println(counter);
System.out.println("Contact Deleted!");
if (names[counter-1].equals(names[counter-2])) {
names[counter-1] = "";
numbers[counter-1] = "";
}
}
}