我有代碼從數組中刪除一個條目,然後將所有元素向下移動一個索引,以便將空的空間留在數組的末尾。問題是數組中的最後一個條目被複制到已刪除的索引中。數組刪除 - 最後一個條目重複
這是當輸入所有記錄的數組:
[entryOne, entryTwo, entryThree, entryFour, entryFive, entrySix, entrySeven, entryEight, entryNine, entryTen]
然後我跑我的代碼刪除索引5和打印陣列,這就是表示:
[entryOne, entryTwo, entryThree, entryFour, entryFive, entrySeven, entryEight, entryNine, entryTen, entryTen]
我怎樣才能得到最終的索引被清空?
添加記錄代碼:
static void addStudent() {
if (nameArrayCount < 10) {
System.out.println("Enter the student's name in the following format - surname, forename: ");
studentName = input.next();
studentNamesArray[nameArrayCount] = studentName;
nameArrayCount = nameArrayCount + 1;
}
else if (nameArrayCount == 10) {
System.out.println("******Array is full, please delete a student before adding another.*****");
}
if (markArrayCount < 10){
System.out.println("Enter the first mark: ");
markOne = input.nextInt();
System.out.println("Enter the second mark: ");
markTwo = input.nextInt();
System.out.println("Enter the third mark: ");
markThree = input.nextInt();
studentMarksArray[markArrayCount][0] = markOne;
studentMarksArray[markArrayCount][1] = markTwo;
studentMarksArray[markArrayCount][2] = markThree;
markArrayCount = markArrayCount + 1;
}
}
刪除記錄代碼:
static void deleteStudent() {
System.out.println("Which student would you like to delete?");
for(int i=0;i<10;i++) {
System.out.println(i + ": " + studentNamesArray[i]);
}
int studentChoice = input.nextInt();
for(int i = studentChoice+1; i<studentNamesArray.length; i++) {
studentNamesArray[i-1] = studentNamesArray[i];
}
nameArrayCount = nameArrayCount -1;
}
假設您的數組保存對象或字符串,請將最後一個設置爲null。但無法調整數組大小。你有沒有考慮過使用List? – Taylor