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
  }
}