java - 我如何将这个 for every 转换为 for 循环?

标签 java loops for-loop foreach

我无法将此 foreach 更改为 for 循环。我在使用链接列表时无法使用 foreach,因此我需要将其更改为 for 循环

 private boolean login(String username, String password) {
    MyList<Admin> admins = null;
    XStream xstream = new XStream(new DomDriver());
    try {
        ObjectInputStream is = xstream.createObjectInputStream(new FileReader("Admins.xml"));
        admins = (MyList<Admin>) is.readObject();
        is.close();
    }
    catch(FileNotFoundException e) {
        admins =  new MyList<Admin>();
        txtFeedBackArea.setText("Password File not located");
        return false;

    }
    catch (Exception e) {
        txtFeedBackArea.setText("Error accessing Password File");
        return false;
    }

    for (Admin admin: admins) {
        if(admin.getUsername().equals(username) && 
admin.getPassword().equals(password))
            return true;
    }
    return false;
}*/

最佳答案

这个怎么样?

for (int i = 0; i < admins.size(); i++) {
    final Admin a = admins.get(i);
    if(a.getUsername().equals(username) && a.getPassword().equals(password))
        return true;
}

顺便说一句,使用 for-each 样式循环总是更好,因为它提供了更多的可读性和便利性

编辑:既然您提到了链表,最好使用链表迭代器来迭代您的集合。

for (ListIterator<Admin> iter = admins.listIterator(0); iter.hasNext()) {
    final Admin a = iter.next();
    if(a.getUsername().equals(username) && a.getPassword().equals(password))
        return true;
}

您还可以使用 while 循环

while (iter.hasNext()) {
// do the work
}

关于java - 我如何将这个 for every 转换为 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59255851/

相关文章:

java - 正则表达式 - 每组行一个组

java - 我在使用此代码将 csv 转换为 json 架构时收到此错误

java - 显示 JSP 内数组列表中的项目列表

java - 找出循环错误

php - For 循环从 0001 而不是 1 开始

java - 简单的 for 语句不会继续循环?

for-loop - “where”方法在 'onChange'方法中不起作用

r - 对矩阵的所有列组合进行计算

java - 安卓工作室 : create Java project with no Android dependencies

javascript - 在 for 循环中将参数传递给 setTimeout