增强for、iterator迭代器
因为初学java,对部分语法还模棱两可,
在做练习的时候,用增强for遍历字符串编译报错
所以来复习下增强for原理和适用范围
一.增强for概念
增强for(也成为for each循环)是JDK 1.5以后出来的一个高级for循环,
专门用来遍历数组和集合的,内部原理是iterator迭代器,所以遍历时,不能对集合中元素增删
遍历数组代码演示:
int[] arr = {3,5,6,87}; //使用增强for遍历数组 for(int a : arr){//a代表数组中的每个元素 System.out.println(a);
代码放在test类中运行遍历出数组内元素
遍历集合代码演示:
Collection<String> coll = new ArrayList<String>(); coll.add("小河神"); coll.add("老河神"); coll.add("神婆"); for(String s :coll){ System.out.println(s);//变量S,表示被遍历到的集合内部的元素 }
代码放在test类中运行遍历出集合内各个元素
二.Iterator接口
1.增强for循环内部使用的是iterator,所以来了解下Iterator
Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器
2.要向遍历集合,先要获取迭代器对象,获取迭代器方法:
public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合
Collection<String> coll = new ArrayList<String>(); // 添加元素到集合 coll.add("串串星人"); coll.add("吐槽星人"); coll.add("汪星人");
//使用迭代器 遍历 每个集合对象都有自己的迭代器 Iterator<String> it = coll.iterator();
while(it.hasNext()){ //判断是否有迭代元素
String s = it.next(); //获取迭代出的元素
Syetem.out.println(s);
}
迭代器的实现原理:
1.通过集合 coll 调用iterator()方法获得迭代器对象;
2.使用hashNext()方法盘算集合中是否存在下一个元素;
3.如果存在,调用next()方法将元素取出,否则说明已经到达了集合末尾,停止遍历元素
posted on 2018-09-01 10:50 shaoshuai888 阅读(156) 评论(0) 编辑 收藏 举报