Java 增强的for循环
所以我在看我在java课程中的一个例子,并没有使用常规的for循环,而是使用了增强的for循环。我一直试图将它改回常规的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中增强的
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!