通过arraylist java循环

时间:2014-10-05 02:52:15

标签: java arraylist javafx-8

您好我正在使用javafx8创建一个银行应用程序的sort。我似乎在添加新帐户方面遇到了麻烦。我想要做的是创建一个循环来读取列表,如果存在相同的帐号并提示用户它已经存在。你能检查一下我做错了吗?

BTW I have corrected out all the typo's Eclipse always asks me to correct those before compiling

这是我的主应用程序中的列表 private ObservableList<Person> personData = FXCollections.observableArrayList();

以下是我访问另一个班级列表的方法

public ObservableList<Person> getPersonData() {
        return personData;
    }

在我的PersonEditDialogController类中访问列表时,它执行了此操作

MainApp mainapp = new MainApp();
    ObservableList<Person> personData = mainapp.getPersonData(); 

这是我验证用户输入的代码

private boolean isInputValid() {
        String errorMessage = "";

        if (accountNumField.getText() == null || accountNumField.getText().length() == 0) {
            errorMessage += "Not a valid account number!\n"; 
        }
        //TO LOOP THROUGH THE LIST
        Person person = null;
        for (Person a : personData) {
            if ((accountNumField.getText().equalsIgnoreCase(a.getaccountNum()))){
                person = a;
                break;
            }
        }
        // CODE THAT DOES NOT WORK
        if (accountNumField.getText().equals(person)){
                    errorMessage += "Account number already exist\n";
        }

        if (errorMessage.length() == 0) {
            return true;
        } else {
            // Show the error message.
            Dialogs.create()
            .title("Invalid Fields")
            .masthead("Please correct invalid fields")
            .message(errorMessage)
            .showError();
            return false;
        }
}

2 个答案:

答案 0 :(得分:1)

在我看来,你有不平衡的花括号(在person = a;行之后还有一个额外的大括号} 。因此该函数似乎在循环之后结束。

答案 1 :(得分:0)

认为你需要这个才能让你的所有花括号平衡

如果您在问题中显示的内容不是您的实际代码,请发布真实代码以及您的错误消息。您发布的内容有太多语法错误,任何人都无法帮助您解决逻辑问题。

private boolean isInputValid() {
    String errorMessage = "";

    if (accountNumField.getText() == null || accountNumField.getText().length() == 0) {
        errorMessage += "Not a valid account number!\n"; 
    }
    //TO LOOP THROUGH THE LIST
    Person person = null;
    for (Person a : personData) {
        if ((accountNumField.getText().equalsIgnoreCase(a.getaccountNum()))) {
            person = a;
            // }  -- nPn COMMENETED OUT LINE 
            // break;   -- nPn COMMENETED OUT LINE 
        }
    }
    // CODE THAT DOES NOT WORK
    if (accountNumField.getText().equals(person)){
                errorMessage += "Account number already exist\n";
    }  // -- nPn ADDED CURLY BRACE


    if (errorMessage.length() == 0) {
        return true;
    } else {
        // Show the error message.
        Dialogs.create()
        .title("Invalid Fields")
        .masthead("Please correct invalid fields")
        .message(errorMessage)
        .showError();
        return false;
    }
}  // --nPn ADDED CURLY BRACE