概述
迭代器与增强for的基本原理及其使用
迭代器的概述
Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素, 如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
每种集合的底层的数据结构不同,例如ArrayList是数组,LinkedList底层是链表,但是无论使用那种集合,我们都会有判断是否有元素 ,以及取出里面的元素的动作,那么Java为我们提供一个迭代器定义了统一的判断元素和取元素的方法
迭代器的使用
- 调用集合的方法iterator()获取出,Iterator接口的实现类的对象:如本例
Iterator b=a.iterator(); - 接口实现类对象,调用方法hasNext()判断集合中是否有元素:b.hasNext()
- 接口的实现类对象,调用方法next()取出集合中的元素:b.next()
- 迭代是反复内容,使用while循环实现,循环的条件,集合中没元素, hasNext()返回了false
public static void main(String[] args) {
Collection<Integer> a=new ArrayList<Integer>();
a.add(12);
a.add(66);
a.add(9);
a.add(32);
Iterator<Integer> b=a.iterator();
while(b.hasNext()) {
Integer c=b.next();
System.out.println(c);
}
}
结果:
12
66
9
32
迭代器的图解
个人白话解释:最开始next()指针在a的前面,先进行hasNext()判断指针后一个位置是否有元素,有则hasNext返回ture,next()指针移动指向a,中间不断重复。到了最后指针到了d所在的位置,进行下一步hasNext()判断指针后一个位置是否有元素,没了hasNext返回false结束循环遍历完毕。
增强for
格式:
for( 数据类型 变量名 : 数组或者集合 ){
sop(变量);
}
作用 : 实现for循环,遍历数组
好处: 代码少了,方便对容器遍历
弊端: 没有索引,不能操作容器里面的元素
public static void main(String[] args) {
int [] a=new int[]{1,6,8,44,22,15};
for(int k:a) {
System.out.print((k+1)+",");//也可以写成int s=k+1;System.out.print(s+",")
}
System.out.println();
System.out.println(a[0]+","+a[1]+","+a[2]);
}
结果:
2,7,9,45,23,16,
1,6,8
注意:可见结果第二排,增强for并没有改变原来数组中元素的值,相当于k这个变量在循环时一个一个的复制然后赋值,不操作容器里面的元素.
最后
以上就是愉快大叔为你收集整理的迭代器与增强for的基本原理及其使用的全部内容,希望文章能够帮你解决迭代器与增强for的基本原理及其使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复