Iterator接口
2016-06-17 21:06
363 查看
在Java中,变量一般是变量的引用,获取到的是它的值。
实现Iterator接口,遍历Collection实现类的内容时候,不可用Iterator自身以外的类来改变Collection实现类的内容,相当于Iterator实现类已经接管了Collection实现类。
“
这里写代码片
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class Itea {
}
“`
若coll之后发生变化,iter不再可以遍历coll,coll发生变化的前后两次的hashcode值是不一样的。
Iterator接口采用快速失败机制,一旦在遍历集合过程中发现集合被修改(通常是程序其他进程修改),程序立即发生异常,而不是显示修改后的结果,避免共享资源引发的潜在问题。
实现Iterator接口,遍历Collection实现类的内容时候,不可用Iterator自身以外的类来改变Collection实现类的内容,相当于Iterator实现类已经接管了Collection实现类。
“
这里写代码片
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class Itea {
public static void main(String[] args) { Collection<String> coll=new HashSet<String>(); coll.add("111"); coll.add("222"); coll.add("333"); coll.add("444"); coll.add("555"); Iterator<String> iter=coll.iterator(); Iterator<String> iter_01=coll.iterator(); while(iter.hasNext()) { String str=iter.next(); if(str.equals("222")) { iter.remove(); //coll.remove(str);代码错误 } else { str="666"; } } System.out.println(coll); }
}
“`
如:Iterator iter=coll.iterator();
若coll之后发生变化,iter不再可以遍历coll,coll发生变化的前后两次的hashcode值是不一样的。
Iterator接口采用快速失败机制,一旦在遍历集合过程中发现集合被修改(通常是程序其他进程修改),程序立即发生异常,而不是显示修改后的结果,避免共享资源引发的潜在问题。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树