for each
来源:互联网 发布:如何查看手机网络制式 编辑:程序博客网 时间:2024/06/14 07:52
增加型for循环
又称为:新循环 是在JDK1.5之后推出的特性,作用是遍历集合或数组
语法:
for( 接收数组中元素 : 数组或集合实例)
如String[] array = {“one”,”two”};
for(String s:array) 即表示用遍历数组的每个元素,s来接收array数组中的每一个元素
数组例子
public class Demo {
public static void main(String[] args) { String[] array = {"one","two","three","four"}; //一般的for循环 System.out.println("一般的for循环用法"); for(int i = 0; i<array.length;i++){ System.out.println(array[i]); } //for each循环用法 System.out.println("for each 增强型循环用法"); for(String s : array){ System.out.println(s); }}
}
运行结果
一般的for循环用法
one
two
three
four
for each 增强型循环用法
one
two
three
four
集合例子
注意:集合 for each 的写法,要用Object 去接收
import java.util.ArrayList;
import java.util.Collection;
public class Demo {
public static void main(String[] args) { Collection c = new ArrayList(); c.add("one"); c.add("two"); c.add("three"); c.add("four"); for(Object o :c){ //用Object 去接收 System.out.println(o); }}
}
运行结果:
one
two
three
four
注意点:
新循环并非新的语法,虚拟机并不支持新循环语法
新循环是编译器认可的,当编译器编译源程序时发现使用新循环遍历集合时,会将代码改为使用迭代器遍历集合
新循环遍历数组时,会将代码改为一般循环
所以使用新循环遍历集合时不要通过集合的方法增删元素,否则可能发生异常
import java.util.ArrayList;
import java.util.Collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo {
public static void main(String[] args) { Collection c = new ArrayList(); c.add("one"); c.add("#"); c.add("two"); c.add("three"); c.add("four"); /*for(Object o :c){*/ Iterator it = c.iterator(); while(it.hasNext()){ Object o = it.next(); //在用for each循环时,编译器自动for each改变为迭代器遍历 String str = (String)o; System.out.println(str); if("#".equals(str)){ c.remove(str); } }}
}
运行结果:
one
#
Exception in thread “main” java.util.ConcurrentModificationException
at java.util.AbstractList
at Demo.main(Demo.java:15)
- for each
- for each
- for each
- for each
- for each
- FOR EACH
- for-each
- for-each
- for each
- for、for-each、迭代器
- test for each
- For-Each循环
- for each循环
- Java 中的for each
- JSTL for each嵌套
- For Each...Next 语句
- *java*for each
- Java for each语句
- day26笔记
- 从jsp页面发送ajax请求,servlet接受参数并返回json数据
- 算法分析与设计第九周
- day27笔记
- 深入理解JavaScript编程中的同步与异步机制
- for each
- 《HTML之表单》
- 运算符之:3、关系运算符(6个)
- 笔试整理 六
- springmvc+mybatis配置过程及示例
- 多线程学习记录2
- 234-Palindrome Linked List
- 决策树:ID3算法
- Struts2基础01:编写第一个HelloStruts2程序