Java ArrayListdelete查询
以下是我的输出:Java ArrayListdelete查询,java,string,arraylist,java.util.scanner,delete-row,Java,String,Arraylist,Java.util.scanner,Delete Row,以下是我的输出: -----Query----- [1]Update [2]Delete [3]Search [4]Show Choose Query:1 Enter Your Student ID:1 Enter Your First Name: Respo Enter Your Middle Name: Topher Enter Your Last Name: Raspo Do you want to back to Query?(Yes/No) Yes -----Query----- [1
-----Query-----
[1]Update
[2]Delete
[3]Search
[4]Show
Choose Query:1
Enter Your Student ID:1
Enter Your First Name: Respo
Enter Your Middle Name: Topher
Enter Your Last Name: Raspo
Do you want to back to Query?(Yes/No)
Yes
-----Query-----
[1]Update
[2]Delete
[3]Search
[4]Show
Choose Query: 4
12
Christopher
Reposo
Porras
1
Respo
Topher
Raspo
如图所示,我正在尝试创建一个没有数据库的简单小系统,但使用ArrayList来包含这些数据,现在我的问题是删除查询。现在在Delete查询中,我告诉用户键入学号1,然后删除学号信息及其包含的名字、中间名、姓氏,但我在ArrayList中没有太多的逻辑来做这样的事情。顺便问一下,在这种情况下是否可以只使用一个ArrayList,或者我需要制作多个数组列表来解决我的问题
public static void main(String[] args) {
//initialize Scanner for input process
Scanner scan = new Scanner(System.in);
//initialize needs variable
List<String> list = new ArrayList<String>();
int choose,chooseQuery;
String chooseYesOrNo = " ";
String chooseYesOrNo2 = " ";
do {
//Startup Program
System.out.println("=====-----LibrarySystem-----=====");
System.out.println("[1]Student Information");
System.out.println("[2]Book Information");
System.out.print("Choose Table:");
choose = scan.nextInt();
do {
if(choose == 1) {
System.out.println("-----Query-----");
System.out.println("[1]Update");
System.out.println("[2]Delete");
System.out.println("[3]Search");
System.out.println("[4]Show");
//reserved
//reserved
System.out.print("Choose Query:");
chooseQuery = scan.nextInt();
if(chooseQuery == 1) {
System.out.print("Enter Your Student ID:");
String id = scan.next();
list.add(id);
System.out.print("Enter Your First Name:");
String name = scan.next();
list.add(name);
System.out.print("Enter Your Middle Name:");
String middle_name = scan.next();
list.add(middle_name);
System.out.print("Enter Your Last Name:");
String last_name = scan.next();
list.add(last_name);
System.out.println("Do you want to back to Query?(Yes/No)");
chooseYesOrNo = scan.next();
} else if (chooseQuery == 2) { //Delete Query
System.out.print("Enter Student ID:");
String find_id = scan.next();
} else if(chooseQuery == 3) { //Search Query
} else if(chooseQuery == 4) { //Show Query
for (String s : list) {
System.out.println(s);
}
}
}
} while(chooseYesOrNo.equals("Yes"));
System.out.println("Do you want to get back at tables?(Yes/No)");
chooseYesOrNo2 = scan.next();
} while(chooseYesOrNo2.equals("Yes"));
System.out.println("-----=====Program Terminated=====-----");
}
创建学生对象,该对象包含您需要的学生id、姓名等所有字段
class Student {
int studentId;
String firstname;
String middlename;
String lastname;
}
为学生对象创建一个数组列表
java.util.List<Student> list = new java.util.ArrayList<Student>();
不要发布图片,发布文本。查看您现在的代码会很有帮助。我的错,我会立即发布。您已经了解了课程吗?如果您创建一个学生类,将所有数据收集到一个对象中,这将更加容易。还没有,先生,但我将尝试研究ClassSir Ryan,我在这段代码中遇到的问题。对于Student std:list{if std.studentId==targetId{list.removestd;break;//由于您删除了目标,您可以退出循环}}我遇到错误,它说对象无法转换为列表我知道它的勺子馈送太多,我很抱歉。
for (Student std:list) {
if (std.studentId == targetId) {
list.remove(std);
break; //since you've removed target, you can exit the loop
}
}