Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将每个for转换为for循环?_Java_Loops_For Loop_Foreach - Fatal编程技术网

Java 如何将每个for转换为for循环?

Java 如何将每个for转换为for循环?,java,loops,for-loop,foreach,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 = xstr

我无法将此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;
}

嗨,欢迎来到Stack Overflow!到目前为止你都试了些什么?当你说我不能使用foreach时,你的意思是因为这是家庭作业,所以你不能使用foreach吗?伙计,这很有效。非常感谢你,期末考试做了些什么?@Jhogan我很高兴它对你有所帮助。final关键字将变量标记为常量,在本例中,这意味着您不能使用类Admin的另一个实例重新初始化变量。换句话说,更改它引用的对象。但是,您仍然可以编辑其成员。对于基本类型int、float、char等。final仅仅意味着变量的值不能修改。因为问题提到“链表”,所以最好使用基于迭代器的循环,而不是基于索引的循环…@Holger谢谢,你说得对。我编辑了我的答案以获得批准
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 (iter.hasNext()) {
// do the work
}