[英]Delete object in Arraylist
我的問題是,當我在數組中有2個對象時,它會循環2x,然后詢問另一個“您確定要刪除它嗎?”。 無法弄清楚我的循環。 這是代碼:
for (Iterator<Student> it = student.iterator(); it.hasNext();) {
Student stud = it.next();
do {
System.out.print("Are you sure you want to delete it?");
String confirmDelete = scan.next();
ynOnly = false;
if (confirmDelete.equalsIgnoreCase("Y")
&& stud.getStudNum().equals(enterStudNum2)) {
it.remove();
System.out.print("Delete Successful");
ynOnly = false;
} else if (confirmDelete.equalsIgnoreCase("N")) {
System.out.print("Deletion did not proceed");
ynOnly = false;
} else {
System.out.println("\nY or N only\n");
ynOnly = true;
}
} while (ynOnly == true);
}
這是因為發生了兩個循環。 在ynOnly
的值變為false之后,您的內部循環終止,但外部循環仍然繼續。 您可能想要這樣的東西-
for (Iterator<Student> it = student.iterator(); it.hasNext();) {
Student stud = it.next();
if(!stud.getStudNum().equals(enterStudNum2))
continue; //you want only that student to be deleted which has enterStudNum2 so let other record skip
do {
System.out.print("Are you sure you want to delete it?");
String confirmDelete = scan.next();
ynOnly = false;
if (confirmDelete.equalsIgnoreCase("Y")
&& stud.getStudNum().equals(enterStudNum2)) {
it.remove();
System.out.print("Delete Successful");
ynOnly = false;
} else if (confirmDelete.equalsIgnoreCase("N")) {
System.out.print("Deletion did not proceed");
ynOnly = false;
} else {
System.out.println("\nY or N only\n");
ynOnly = true;
}
} while (ynOnly == true);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.