ArrayList <string>删除查询

时间:2016-02-02 22:56:38

标签: 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]Update
[2]Delete
[3]Search
[4]Show
Choose Query: 4
12
Christopher
Reposo
Porras
1
Respo
Topher
Raspo

正如你在图片中看到的那样,我试图创建一个没有数据库的简单小系统,但现在使用ArrayList来包含这些数据我的问题出现在删除查询中。现在在删除查询中我告诉用户键入学生编号为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=====-----");
}

1 个答案:

答案 0 :(得分:3)

  1. 创建包含所需字段的学生对象(学生ID,姓名等)

    class Student {
      int studentId;
      String firstname;
      String middlename;
      String lastname;
    }
    
  2. 拥有一个学生对象的数组列表

    java.util.List<Student> list = new java.util.ArrayList<Student>();
    
  3. 选择“删除”操作后,遍历列表以查找对象并将其删除。这里是nice blog关于迭代arraylist的方法。我最喜欢的方法如下:

    for (Student std:list) {
      if (std.studentId == targetId) {
        list.remove(std);
        break; //since you've removed target, you can exit the loop
      }
    }