无法从Arraylist中删除对象用户

时间:2015-12-17 00:01:09

标签: java

有人可以帮我解决我的代码吗。我是一个begginer,这个东西叫java真的很困惑我:)我的问题是我必须删除用户/ s,但我的输出总是只是用户名没有找到...提前感谢

public void removeUser() {
    java.util.Scanner input = new java.util.Scanner(System.in);
    int checks = 1;
    if (checks == 1) {
        for (int i = 0; i < userList().size(); i++) {

            System.out.println("Input user name for the account you want to be deleted");
            userName = input.next();

            if (userList.equals(userName)) {
                userList.get(i);
                userList.remove(userName);
                System.out.println("You succesfully removed user acount");
                System.out.println("If you want to exit press 0, if you want to continue press 1");
                checks = input.nextInt();

            } else {
                System.out.println("User name not found");
            }
        }
    }
    if (checks == 0) {

        administrator();
    }

}

3 个答案:

答案 0 :(得分:0)

您在这里使用代码的第一件事就是将if (checks == 1)更改为while循环while(checks == 1),因为if只能执行一次。

第二件事if (userList.equals(userName))永远不会true,因此不会执行if子句。您首先从列表中获取用户名,如String name userList.get(i);,然后您可以检查它是否与此相同

if(name.equals(userName)) //or userList.contains(userName){
    // userList.remove(userName);
    // OR
    // userList.remove(i);
}

<强> Eidt:

您可以更改以下代码,也许可以为您工作

        List<String> userList = new ArrayList<>();
        userList.add("AA");
        userList.add("BB");
        userList.add("CC");
        java.util.Scanner input = new java.util.Scanner(System.in);
        int checks = 1;
        while (checks == 1) {
            for (int i = 0; i < userList.size(); i++) {

                System.out.println("Input user name for the account you want to be deleted");
                String userName = input.next();

                if(userList.remove(userName)) {
                    System.out.println("You scornfully removed user account");
                } else {
                    System.out.println("User name not found");
                }
                System.out.println("If you want to exit press 0, if you want to continue press 1");
                checks = input.nextInt();
            }
        }
        if (checks == 0) {
            administrator();
        }

答案 1 :(得分:0)

public static void main(String[] args) {

    List<String> customerNames = new ArrayList<String>();
    customerNames.add("john");
    customerNames.add("lily");
    customerNames.add("druid");

    java.util.Scanner input = new java.util.Scanner(System.in);
    System.out.println("Please enter 1 ");
    if(input.nextInt() != 1){
        System.out.println("break checks ... ...");
        return;
    }
    for(int i = 0; i < customerNames.size(); i++) {
        System.out.println("Input user name for the account you want to be deleted");
        if (customerNames.get(i).equals(input.next())) {
            customerNames.remove(i);
            System.out.println("You succesfully removed user acount");
            System.out.println("If you want to exit press 0 ... ...\n");
            if(input.nextInt() == 0){   //break
                break;
            }
        } else {
            System.out.println("User name not found... ...\n");
        }
    }
}

答案 2 :(得分:0)

public static void main(String[] args) {

    List<String> customerNames = new ArrayList<String>();
    customerNames.add("john");
    customerNames.add("lily");
    customerNames.add("druid");

    java.util.Scanner input = new java.util.Scanner(System.in);
    System.out.println("Please enter 1: ");
    if(input.nextInt() != 1){
        System.out.println("break checks ... ...");
        return;
    }

    System.out.println("========= start =========");
    System.out.println("Please enter 1: ");
    while(input.nextInt() != 0){
        System.out.println("Input user name for the account you want to be deleted... ...");
        System.out.println("enter name:");
        String _name = input.next(); 
        for(int i = 0; i < customerNames.size(); i++) {
            if(_name.equals(customerNames.get(i))){
                customerNames.remove(_name);
                System.out.println("You succesfully removed user acount");
                break;
            }
        }
        System.out.println("If you want to exit press 0 ... ...\n");
        System.out.println("input numeric:");
    }
    System.out.println("========= end =========");

    //break
    if(customerNames.size() == 0){return;}
    for(String name : customerNames){//print names
        System.out.println(name);
    }
}