Удаление из ArrayList с помощью Iterator.Не выдаст ошибку, но не удалит - PullRequest
0 голосов
/ 28 января 2019

У меня проблемы с моим кодом.Эта кнопка delete предназначена для удаления объекта типа Employee из ArrayList emp.Программа получает данные от пользователя в формате TextField delUsername, и этим вводом будет имя пользователя Сотрудника, которое необходимо удалить.getUsername - это метод получения класса User, который расширяется Employee.

delete.setOnAction(new EventHandler<ActionEvent>(){
        @Override
        public void handle(ActionEvent arg0) {
        for(Employee x : rw.readEmployee()){
            Iterator itr = rw.readEmployee().iterator();
            while(itr.hasNext()){
                Employee e = (Employee) itr.next();
                if(delUsername.getText().equals(x.getUsername())){
                    itr.remove();
                }
            }
            (new AdminView(admin)).show(st);
            st.show();
        }           
}});

Компилятор выполнит код и все будет работать нормально, без ошибок.Тем не менее, элемент не будет удален.Как я могу сделать эту работу?

private File fUser;
private ArrayList<Employee> emp

public ArrayList<Employee> readEmployee() {
    try {
        FileInputStream fis = new FileInputStream(fUser);
        ObjectInputStream ois = new ObjectInputStream(fis);
        emp = (ArrayList<Employee>) ois.readObject();
        ois.close();
    } catch (FileNotFoundException e) {
        System.err.println("File not Found!!!");
    } catch (ClassNotFoundException e) {
        System.err.println("Class not Found!!!");
    } catch (IOException e) {
        System.err.println("File not accessable!!!");
    }
    return emp;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...