迭代器与增强for的基本原理及其使用

迭代器与增强for的基本原理及其使用

迭代器的概述
Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素, 如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代
每种集合的底层的数据结构不同,例如ArrayList是数组,LinkedList底层是链表,但是无论使用那种集合,我们都会有判断是否有元素 ,以及取出里面的元素的动作,那么Java为我们提供一个迭代器定义了统一的判断元素和取元素的方法

迭代器的使用

  1. 调用集合的方法iterator()获取出,Iterator接口的实现类的对象:如本例
    Iterator b=a.iterator();
  2. 接口实现类对象,调用方法hasNext()判断集合中是否有元素:b.hasNext()
  3. 接口的实现类对象,调用方法next()取出集合中的元素:b.next()
  4. 迭代是反复内容,使用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这个变量在循环时一个一个的复制然后赋值,不操作容器里面的元素.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值