关于增强的for循环
增强的for循环例子:
public static<AnyType> void print(Collection<AnyType> coll){
for(AnyType item:coll)
System.out.println(item);
}/**这就是一个简单的增强for循环的例子**/
当编译器遇到一个正在用于Iterator的对象的增强的for循环的时候,它用对iterator
方法的那些调用替代增强的for循环以得到一个Iterator对象,然后调用next和hasNext
public static<AnyType> void print(Collection<AnyType> coll){
Iterator<AnyType>it=coll.iterator();
while(it.hasNext()){
AnyType item=it.next();
System.out.println(item);
}
}/**通过编译器使用一个迭代器改写的iterator类型上的增强for循环**/ 当使用增强的for循环,或者直接使用Iterator的时候,如果正在迭代的集合进行结构上的改变
比如对集合使用add,remove,clear等方法,那么迭代器将不再合法,并且会有异常抛出,
然而如果迭代器使用了自己的remove方法,那这个迭代器仍是合法的。 /**这个测试增强for循环里改变集合结构的代码**/
public class Text {
public static void main(String[]args){
List<Integer>zzy=new ArrayList<>();
zzy.add(6);zzy.add(5);zzy.add(1);zzy.add(4);zzy.add(2);
System.out.println(zzy);
Text.RemoveEvensver(zzy);
System.out.println(zzy);
}
public static void RemoveEvensver(List<Integer>list){ /**这是第一个方法,出现编译出错。**/
/**for (Integer x:list)
if (x%2==0)
list.remove(x);
**/ /**这是第二个方法,是正确的。**/
/**int i=0;
while (i<list.size())
if (list.get(i)%2==0)
list.remove(i);
else
i++;
**/ Iterator<Integer>it=list.iterator();
while (it.hasNext())
if (it.next()%2==0){
it.remove();
//list.add(9);
}
}
}
关于增强的for循环的更多相关文章
- 增强的for循环(或foreach)
增强的for循环(也称为foreach循环):不用下标变量,顺序的訪问整个数组.不能以其它顺序訪问数组,或者改变数组的元素. for(elementType element: arrayRefVar) ...
- JAVA笔记18-容器之二增强的for循环(不重要)
JDK1.5增强的for循环(foreach??)
- Java之增强的for 循环
3. 增强for循环 1) 作用: 对存储对象的容器进行迭代 2) jdk5以前怎么迭代 3) 增强for循环迭代数组 String [] arr = {"a", "b ...
- Java——JDK1.5新增强的for循环
<1>JDK1.5新增的for循环对于遍历array或collection非常便利. <2>缺陷: 数组:不能方便地访问下标值. 集合:与使用Int ...
- 增强的for循环
- 增强for循环用法___ArrayList数组实现使用下标最好,LinkedList使用增强型的(转载)
总结: 1.For-Each循环的缺点:丢掉了索引信息. 当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息. ...
- 关于增强for循环
1 增强for循环增强for循环是for的一种新用法!用来循环遍历数组和集合. 1.1 增强for的语法for(元素类型 e : 数组或集合对象) {}例如:int[] arr = {1,2,3};f ...
- Java中增强for循环的用法
此方法在jdk1.5之后才出现. 1:遍历数组 语法: for (Type value : array) { expression value; } 例子: void Sum() { int[] ar ...
- for循环和增强版的for循环
增强的for循环. 缺点: 对于数组.不能方便的訪问下标值. 对于集合,与使用Interator相比.不能方便的删除集合中的内容(在内部也是调用Interator). 除了简单遍历并读取当中的 ...
随机推荐
- 三、git管理修改
一.修改提交 如下图,Git分工作区和版本库(.git隐藏目录中). 在每次修改后 git add "file name" 其实是把修改内容提交到本地版本库的 暂存区(stage) ...
- 'No Transport' Error w/ jQuery ajax call in IE
I need to use foursquare API to search venues. Of course it is cross-domain. It has no any problems ...
- luogu P2365 任务安排
嘟嘟嘟 如果常规dp,\(dp[i][j]\)表示前\(i\)个任务分\(j\)组,得到 \[dp[i][j] = min _ {k = 0} ^ {i - 1} (dp[k][j - 1] + (s ...
- docker devicemapper 问题
DOCKER_OPTS= "--storage-driver=devicemapper --storage-opt dm.basesize=50G --storage-opt dm.da ...
- docker安装jenkins及其相关问题解决
1.拉取镜像并启动容器 docker run -d -p 8080:8080 -p 50000:50000 -v $(pwd)/data:/var/jenkins_home --name jenkin ...
- Drools实战系列(三)之eclipse创建工程
web工程和maven工程是目前比较常用的,当然对现在而言,maven工程是开发中最常用的. 两种Drools项目的创建方式,一种是直接创建Drools项目,另一种是基于Maven创建Drools项目 ...
- CSS2.0实现面包屑
CSS2.0实现面包屑 面包屑这样的 我们以前都是用背景图片做这块工作,但是直到大概2个星期之前在新浪微博上看到用css3.0实现这样的面包屑 但是目前情况下IE6-8并不支持css3.0 只有标准游 ...
- odoo明细表汇总数据
一.在主表中#改动地方 总结算金额 求和:def _get_subtotal2(self, cr, uid, ids, field_name, arg, context=None): # 初始化 re ...
- SQL Server聚合函数与聚合开窗函数
以下面这个表的数据作为示例. 什么是聚合函数? 聚合函数:聚合函数就是对一组值进行计算后返回单个值(即分组).聚合函数在计算时都会忽略空值(null). 所有的聚合函数均为确定性函数.即任何时候使用一 ...
- MapReduce -- TF-IDF
通过MapReduce实现 TF-IDF值的统计 数据:文章ID 文件内容 今天约了姐妹去逛街吃美食,周末玩得很开心啊! ...... ...... 结果数据: 开心:0.28558719539400 ...