Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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循环_Java_Foreach - Fatal编程技术网

Java 增强的for循环

Java 增强的for循环,java,foreach,Java,Foreach,所以我在看我在java课程中的一个例子,并没有使用常规的for循环,而是使用了增强的for循环。我一直试图将它改回常规的for循环,但没有成功。我已经看过了类似的问题,但没有弄明白。有人能给我指一下正确的方向吗 int total = 0; int i; // loop through homeworks, add to total for(Integer grade: this.homeworks){ total = total + grade; } Java中增强的

所以我在看我在java课程中的一个例子,并没有使用常规的for循环,而是使用了增强的for循环。我一直试图将它改回常规的for循环,但没有成功。我已经看过了类似的问题,但没有弄明白。有人能给我指一下正确的方向吗

int total = 0;
int i;

// loop through homeworks, add to total
for(Integer grade: this.homeworks){         
  total = total + grade;
}

Java中增强的for循环只是常规for循环的简写形式,两者之间没有性能差异

您可以使用以下几种不同的变体:

    List<Integer> homework = new ArrayList<>();
    homework.add(new Integer(6));
    homework.add(new Integer(7));
    homework.add(new Integer(8));
    homework.add(new Integer(9));

    for (Integer integer : homework) {
        System.out.println(integer);
    }

    for (Iterator<Integer> it = homework.iterator(); it.hasNext();) {
        Integer integer = it.next();
        System.out.println(integer);

    }

    for (int i = 0; i < homework.size(); i++) {
        Integer integer = homework.get(i);
        System.out.println(integer);

    }
列出作业=新建ArrayList();
加上(新的整数(6));
添加(新的整数(7));
添加(新的整数(8));
添加(新的整数(9));
对于(整数:家庭作业){
System.out.println(整数);
}
for(Iterator it=家庭作业。Iterator();it.hasNext();){
整数=it.next();
System.out.println(整数);
}
for(inti=0;i
我读到增强for循环比普通for循环更有效

事实上,有时候它对程序来说效率较低,但大多数时候都是一样的

它对开发人员来说效率更高,这通常更为重要

迭代集合时,for-each循环特别有用

List<String> list = 
for(Iterator<String> iter = list.iterator(); list.hasNext(); ) {
    String s = list.next();
   ------
 }
列表=
for(迭代器iter=list.Iterator();list.hasNext();){
字符串s=list.next();
------
}
更容易编写为(但与做相同的事情,因此对程序来说没有更高的效率)

列表=
用于(字符串s:列表){
---
}
当通过索引访问随机访问的集合时,使用“old”循环稍微更有效一些

List<String> list = new ArrayList<String>(); // implements RandomAccess
for(int i=0, len = list.size(); i < len; i++) // doesn't use an Iterator!
List List=new ArrayList();//实现随机访问
for(int i=0,len=list.size();i
在集合上使用for-each循环总是使用迭代器,这对于随机访问列表来说效率稍低


使用for each循环对程序来说从来都不是更有效的,但正如我所说的,开发人员的效率往往更为重要。

我尝试了您的变体,但出于某种原因,它没有从ArrayList中提取任何内容。我更新了示例,在列表中包含4个元素并打印它们。
List<String> list = new ArrayList<String>(); // implements RandomAccess
for(int i=0, len = list.size(); i < len; i++) // doesn't use an Iterator!