Iterator(迭代器)<E> 接口:
所属包:java.util
成员方法:
E next ( ); //获取下一个元素
boolean hasNext ( ); // 判断是否有元素,有true,没有false
void remove( ); //获取谁,删除谁
注意: 1.通过迭代器遍历集合的失败,不能通过集合对象增删元素
2.如果要删除元素可以通过迭代器对象删除
迭代器的实现原理(ArrayList):
* hasNext的底层有一个cursor变量,用来记录当前存储元素的游标,当判断
* cursor!=size //游标和元素个数进行比较,不相同就认为有下一个元素
* next: * 数组名[cursor++]; //获取游标位置的元素,然后游标加
增强for循环:
语法: for(数据类型 对象名 : 要遍历的集合名称){
//对象名就是我们获取元素
//数据类型写接口的泛型
}
增强for循环: 遍历集合的时候,底层就是迭代器
迭代器实现原理:
我们看下java Collection中迭代器是怎样实现的
//迭代器角色,仅仅定义遍历集合接口
//方式一:获取所有的 key
Set keySet = map.keySet();
Iterator iterator = keySet.iterator();
while(iterator.hasNext()) {
String key = iterator.next();
Double value = map.get(key);//根据 key 获取 value
System.out.println(key+"--"+value);
}
//方式二:用增强for循环获取所有的 Entry(K 和 V 的组合)
Set<Entry<String,Double>> entrySet = map.entrySet();
for(Entry entry:entrySet) { //调用 Entry 接口的方法
String key = entry.getKey();
Double value = entry.getValue();
System.out.println(key+"--"+value);
}